Docker 采用的是 Client/Server 架构。客户端向服务器发送请求,服务器负责构建、运行和分发容器。客户端和服务器可以运行在同一个 Host 上,客户端也可以通过 socket 或 REST API 与远程的服务器通信。Docker daemon 运行在 Docker host 上,负责创建、运行、监控容器,构建、存储镜像。
最常用的 Docker 客户端是 docker
命令。通过 docker
我们可以方便地在 Host 上构建和运行容器。
首先我们重启Docker daemon
systemctl daemon-reload
1、服务器 IP 为 192.168.56.102,客户端在命令行里加上 -H 参数,即可与远程服务器通信
1、启动容器
[[email protected] ~]# docker run -it centos [[email protected] /]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) [[email protected] /]# exit exit [[email protected] ~]# [[email protected] ~]# docker run -d -p 80:80 httpd 2daeff3cae12036f0b2b0f1ca6e4ff19a1b7e1bde737f64eae28161ecc3fa12d 这个命令的执行过程如下
Docker 客户端执行 docker run 命令。 Docker daemon 发现本地没有 httpd 镜像。 daemon 从 Docker Hub 下载镜像。 下载完成,镜像 httpd 被保存到本地。 Docker daemon 启动容器。
2、docker images
可以查看到镜像的列表, httpd 已经下载到本地。
docker ps
或者 docker container ls
显示容器正在运行。
3、下载镜像docker pull
下载hello-world 是 Docker 官方提供的一个镜像
4、docker commit 命令创建新镜像
docker commit 命令是创建新镜像最直观的方法,其过程包含三个步骤:
-
运行容器
-
修改容器
-
将容器保存为新的镜像
举个例子:在 ubuntu base 镜像中安装 vi 并保存为新镜像。
-
第一步, 运行容器
-it
参数的作用是以交互模式进入容器,并打开终端。412b30588f4a
是容器的内部 ID。 -
安装 vi
确认 vi 没有安装。安装 vi。
-
保存为新镜像
在新窗口中查看当前运行的容器。silly_goldberg
是 Docker 为我们的容器随机分配的名字。执行 docker commit 命令将容器保存为镜像。
新镜像命名为ubuntu-with-vi
。查看新镜像的属性。
从 size 上看到镜像因为安装了软件而变大了。从新镜像启动容器,验证 vi 已经可以使用。
以上演示了如何用 docker commit 创建新镜像。