知道如何创建dockerfile并使用该dockerfile构建docker映像后,我们可以继续深入研究更高级的方式来操作docker容器。当我们谈论操纵Docker容器时,我们包括运行,列出,重新启动,清理悬空的容器,以交互和分离模式运行容器,使用可执行映像创建容器,使用exec命令在docker容器内执行命令以及在a内启动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,则必须在docker start命令中使用attach标志。
sudo docker start −a <container−id>
列出所有docker容器
如果要显示所有Docker容器的列表,可以使用以下命令。
sudo docker ps −a
上面的命令显示本地计算机中所有docker容器的容器ID,关联的映像名称,创建日期,状态等。
清理所有悬挂的容器
要清理所有退出的容器,您需要获取状态已退出的容器的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容器所需的几乎所有重要命令。