维护和操作 Docker 容器


了解如何创建 Dockerfile 以及如何使用该 Dockerfile 构建 Docker 镜像后,我们可以继续深入研究操作 Docker 容器的更高级方法。当我们谈论操作 Docker 容器时,包括运行、列出、重启、清理悬挂容器、以交互式和分离式模式运行容器、使用可执行镜像创建容器、使用 exec 命令在 Docker 容器内执行命令以及在容器内启动 bash、访问 Docker 容器的日志以及杀死或停止 Docker 容器。

事不宜迟,让我们深入探讨操作 Docker 容器。

  • 运行 Docker 容器

使用 docker build 命令构建镜像后,可以使用 docker run 命令运行与该镜像关联的容器。

sudo docker run <image−name>

此命令简单地运行指定 Docker 镜像的一个实例。如果您之前已经创建了一个镜像,并且想要运行该镜像的另一个实例,则可以使用 docker create 命令创建另一个容器。

sudo docker create <image−name>

如果您之前已经创建了一个 Docker 容器,并且现在想要运行该容器,则需要拥有其 ID。要找出容器的 ID,可以使用以下命令:

sudo docker ps −a

获得容器的 ID 后,可以使用以下命令启动容器:

sudo docker start <container−id>

如果希望容器在启动时启动 bash,则必须将 attach 标志与 docker start 命令一起使用。

sudo docker start −a <container−id>
  • 列出所有 Docker 容器

如果要显示所有 Docker 容器的列表,可以使用以下命令。

sudo docker ps −a

上述命令显示容器 ID、关联的镜像名称、创建时间、状态等,所有 Docker 容器在您的本地机器上。

  • 清理所有悬挂容器

要清理所有已退出的容器,需要获取状态为已退出的容器的 ID。您可以使用上面讨论的 docker ps -a 命令来做到这一点。获取容器 ID 后,可以使用以下命令删除容器:

sudo docker rm <container−id>

如果要从系统中删除所有 Docker 对象,可以使用 prune 命令。

sudo docker system prune
  • 重启 Docker 容器

重启 Docker 容器首先会杀死正在运行的容器,然后重新启动它。它与 start 命令不同,因为 start 命令用于启动当前未运行的容器。

sudo docker restart <container−id>
  • 以交互模式运行 Docker 容器

您可以以交互模式启动 Docker 容器 bash,并在该 bash 中运行命令,就像在主机机器的终端中运行命令一样。如果您以交互模式启动 python 容器,则可以使用 python shell;如果您以交互模式启动 ubuntu 容器,则可以使用 ubuntu 终端。

sudo docker run −it ubuntu
  • 运行可执行镜像的容器

如果您的 Docker 镜像是可执行的,即它具有与之关联的 CMD 或 ENTRYPOINT 指令,则可以在 docker run 命令中传递参数,以便在 Docker 容器启动时执行它。

sudo docker run <image−name> <args>

例如,要列出 ubuntu 容器的根目录中的所有文件,可以使用以下命令:

sudo docker run ubuntu ls
  • 以分离模式运行 Docker 容器

以分离模式运行 Docker 容器,即使关闭终端,它也会在后台运行。可以使用 -d 标志来实现此目的。

sudo docker run −d ubuntu
  • 启动 Docker 容器的 bash

要启动 Docker 容器的 bash,以便您可以在容器内执行命令来安装软件包或操作文件系统,可以使用以下命令:

sudo docker run −it <image−name> /bin/bash

或者

sudo docker exec −it <container−id> sh
  • 在容器内直接执行命令

您还可以使用 docker exec 命令,在 Docker 容器内直接执行指定的命令。

sudo docker exec <container−id> <command>
sudo docker exec −it <container−id> /bin/bash
  • 停止/杀死 Docker 容器

要优雅地停止容器,可以使用 docker stop 命令。它首先发送名为 SIGTERM 的信号,如果未停止则发送 SIGKILL 信号。

sudo docker stop <container−id>

要直接停止或杀死容器,请使用以下命令:

sudo docker kill <container−id>

总之,在本文中,我们看到了几乎所有您需要无缝维护和操作 Docker 容器的重要命令。

更新于:2020年10月27日

272 次浏览

开启你的职业生涯

通过完成课程获得认证

开始学习
广告