站长资讯网
最全最丰富的资讯网站

完全掌握Docker学习之容器的使用

本篇文章给大家带来了关于docker中容器的使用,希望对大家有帮助。

完全掌握Docker学习之容器的使用

运行一个容器

如果想要找到一个现有的镜像,可以在公开的 Docker Hub 上搜索,这里可以找到它的介绍和用法,就像在 GitHub 上找一个开源项目一样。

完全掌握Docker学习之容器的使用

如果你是第一次使用 Docker Hub,可以先注册一个账号,在最顶上的搜索框里输入 ubuntu ,找到的第一个结果就是官方的 ubuntu 镜像,点开可以看到上图的页面。

这个页面上有镜像的一些基本信息和用法介绍,右边的 docker pull ubuntu 命令用来在本地拉取镜像。在上一篇已经说过,当我们实例化一个容器时,如果 Docker 在本地找不到指定的镜像,它会自动进行拉取,因此,我们可以直接在本地运行:

docker run -i -t ubuntu /bin/bash

这个命令比上次的示例多了一些参数,下面解释一下:

  • -i 可以保证容器中开启 STDIN

  • -t 会为容器分配一个伪 TTY 终端

  • ubuntu 是镜像的名称,相当于上个示例中的 hello-world

  • /bin/bash 是启动后要在容器中执行的命令

其中 -i 和 -t 两个参数可以使容器运行起来之后,我们可以与之交互。当容器创建完成,Docker 就会执行容器中的 /bin/bash 命令,因此,容器运行后我们的终端会附着到容器上:

完全掌握Docker学习之容器的使用

此时,你可以在开启一个终端,输入 docker ps 命令,查看已经启动的容器,得到的结果如下:

CONTAINER ID   IMAGE     COMMAND       CREATED       STATUS       PORTS     NAMES 402c5d3468d7   ubuntu    "/bin/bash"   4 hours ago   Up 4 hours             reverent_wu

这里展示了容器的 ID、镜像、最后执行的命令、创建时间、状态、名称。这里的名称 reverent_wu 是 Docker 自动生成的,如果需要在创建容器时指定名称,可以使用 –name 来给容器命名。

深入容器内部

当前的状态下,我们可以在附着到容器的终端执行任何 ubuntu 系统下支持的命令。比如,输入 hostname 命令,发现容器的 hostname 就是它的容器 ID。

接着,可以看一下 /etc/hosts 文件:

root@402c5d3468d7:/# cat /etc/hosts 127.0.0.1        localhost ::1        localhost ip6-localhost ip6-loopback fe00::0        ip6-localnet ff00::0        ip6-mcastprefix ff02::1        ip6-allnodes ff02::2        ip6-allrouters 172.17.0.2        402c5d3468d7

你也可以自己尝试在容器中查看进程,甚至使用 apt-get 安装软件包。

最后,可以输入 exit 命令,推出容器,返回宿主机的命令提示符。注意,此时再执行 docker ps 时发现,容器的列表中,已经没有刚刚创建的 ubuntu 容器了。

CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

当我们退出的时候,容器就停止运行了。不过,容器并没有被删除,可以通过 docker ps -a 命令,查看所有创建的容器,无论容器启动与否:

CONTAINER ID   IMAGE     COMMAND       CREATED       STATUS                     PORTS     NAMES 402c5d3468d7   ubuntu    "/bin/bash"   4 hours ago   Exited (0) 2 minutes ago             reverent_wu

这时,它的状态变成了 Exited (0) 2 minutes ago ,表示它在 2 分钟之前推出,退出的状态码是 0,表示正常退出。

我们可以通过一下的命令重新启动这个容器:

docker start 402c5d3468d7

这个命令中,docker start 后面跟的是容器的 ID,也可以使用容器的名称。执行成功后,再通过 docker ps 命令即可看到容器处于启动状态,通过 docker start 命令让容器重新启动后,会沿用 docker run 命令指定的参数,也就是启动后会运行 /bin/bash 启动一个 shell,但是我们并没有进入到容器的命令行当中。可以通过 docker attach 命令再次进入:

docker attach 402c5d3468d7

此时,就可以继续在容器中执行命令。

如果一个容器不再使用了,可以使用 docker rm 命令将它删除。

docker rm 402c5d3468d7

提供持续的服务

赞(0)
分享到: 更多 (0)
网站地图   沪ICP备18035694号-2    沪公网安备31011702889846号