1、简介
Docker 是一个开源的应用容器引擎,基本的概念如下:
镜像(Image):类比文件系统,如ubuntu
容器(Container):容器是镜像运行时的实体,把镜像比喻为类,则容器为其对象实例
2、Docker环境搭建
更新apt
sudo apt-get update
安装依赖
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
添加Docker官方的GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
添加stable版的repository
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
安装最新版本的 Docker Engine-Community 和 containerd
sudo apt-get install docker-ce docker-ce-cli containerd.io
添加docker用户组(避免每次都要sudo
)
sudo groupadd docker //创建docker用户组
sudo usermod -aG docker $USER //添加当前用户到docker组
注销或重启之后直接用docker命令生效,测试如下
docker run hello-world
3、Docker的简单运行
1、基本命令:
docker run ubuntu:15.10 echo "Hello world docker"
其中,docker
为可执行文件;docker run
表示运行一个容器;ubuntu:15.10
为运行的镜像;echo "Hello world docker"
表示在容器中执行的命令。即,Docker 以 ubuntu15.10 镜像创建一个新容器,然后在容器里执行echo "Hello world"命令。
2、通过交互的方式启动:
docker run -i -t ubuntu:15.10 /bin/bash
其中,-t
表示在容器中启动终端;-i
表示交互式。执行命令后,将进去ubuntu15.10系统,可以通过exit
退出。
4、容器的使用
Docker的后台模式启动容器&&基本命令
docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
输出4fa069b49e25e7d390593a458306dd914e621036aae2b60f5f82eb26456ff4b0
,即容器 ID。
其中,使用 -d
参数时,容器启动后会进入后台
(1)查看容器的运行情况docker ps
如下:
其中:
CONTAINER ID
: 容器 ID。
IMAGE
: 使用的镜像。
COMMAND
: 启动容器时运行的命令。
CREATED
: 容器的创建时间。
STATUS
: 容器状态。
PORTS
: 容器的端口信息和使用的连接类型(tcp\udp)。
NAMES
: 自动分配的容器名称。
(2)查看容器的输出:docker logs 容器ID
(3)停止容器:docker stop 容器ID
或者 docker stop 容器NAMES
通过 docker ps 查看,容器是否停止工作
(4)查看运行过的所有容器(包括停止退出的):docker ps -a
列出停止的容器,可用docker start 容器ID
启动一个已停止的容器;通过 docker restart 容器ID
重启容器
(5)后台运行:docker run -itd --name ubuntu-test ubuntu /bin/bash
其中,-d
参数默认不会进入容器;可以通过(a)docker attach 容器ID
或者(b)docker exec 容器ID 在容器中执行命令
(比如docker exec 23496f47fd91 echo hello
,docker exec -it 23496f47fd91 /bin/bash
)进入容器;方式(a)执行exit
会退出容器(即docker ps
查看不到容器运行了),方式(b)则保持容器正在运行的状态。
(6)导出和导入容器
docker export 1e560fca3906 > ubuntu.tar //将容器ID为1e560fca3906 的镜像导出保存
docker import ubuntu.tar test/ubuntu:v2 //导入镜像(也可以通过指定 URL 或者某个目录来导入)
docker images //查看目前的镜像
docker run test/ubuntu:v2 echo hello //测试新导入的镜像
(7)删除容器:docker rm -f 容器ID
(通过docker ps -a
可查看是否删除)
5、镜像的使用
(1)列出镜像列表:docker images
其中:
REPOSITORY
:镜像的仓库源
TAG
:镜像的标签
IMAGE ID
:镜像ID
CREATED
:镜像创建时间
SIZE
:镜像大小
(2)运行镜像:docker run -t -i ubuntu:15.10 /bin/bash
如果不指定镜像的版本标签docker run -t -i ubuntu /bin/bash
,只使用 ubuntu,docker 将默认使用 ubuntu:latest 镜像
(3)获取一个新的镜像:docker pull ubuntu:13.10
(4)查找镜像:docker search 镜像名
其中:
NAME
: 镜像仓库源的名称
DESCRIPTION
: 镜像的描述
OFFICIAL
: 是否 docker 官方发布
stars
: 点赞次数
AUTOMATED
: 自动构建
(5)删除镜像:docker rmi 镜像名
(如docker rmi hello-world
)
(6)设置镜像标签:docker tag IMAGE-ID REPOSITORY:TAG
(如docker tag 860c279d2fec runoob/centos:dev
)
(7)推送镜像:docker push username/镜像名:tag
//需要登录https://hub.docker.com/注册账号
docker login //登录
docker tag xxx username/hello-world:dev //username替换为注册的docker用户名
docker push username/hello-world:dev
docker logout //退出
完成推送后,在https://hub.docker.com 中可以看见推送的镜像
参考:
https://www.runoob.com/docker/docker-tutorial.html
https://blog.csdn.net/White_Idiot/article/details/88950000