从命令行管理 Docker 容器的顶级技巧
Docker 的使用在近些年呈爆炸式增长,并且在未来几年仍将持续增长。大多数组织现在都已将(或正在将)他们的项目迁移到 Docker 容器。因此,仅仅掌握创建和维护 Docker 容器和镜像的基础知识已经不足以跟上如此巨大的技术变革的步伐。
通过单个命令行界面 (CLI) 管理大量的容器和镜像似乎是一项繁琐的任务,但是,凭借适当的管理技能和 Docker CLI 命令的实践经验,这将变得易如反掌。
在本文中,我们将讨论一些工具,这些工具将帮助您非常轻松地在单个站点管理所有 Docker 容器和镜像,并且肯定会为您节省大量时间。
列出镜像和容器
当一台机器上运行许多镜像和容器时,重要的是经常跟踪它们的最新标签、大小、ID 和其他特性,这将有助于您轻松管理它们。
以下命令可以帮助您做到这一点。
sudo docker images
上述命令列出了所有镜像,以及它们的最新标签、大小、ID 和创建日期。
创建镜像后,如果您想知道系统中当前存在的容器列表,可以使用以下命令。
sudo docker ps
上述命令显示所有正在运行的容器 ID、其对应的镜像、创建日期、状态等的列表。
如果您想要所有容器(无论是否正在运行)的列表,只需向上述命令添加一个选项。
sudo docker ps -a
使用别名节省时间
一些 Docker 命令可能难以记住,因为它们可能很长。您可以创建您自己的别名并将它们定义到您的 ~/.bashrc 文件中。
示例
alias dl=’docker ps -l -q’ alias drm=’docker rm’ alias dps=’docker ps’
删除容器和镜像
要删除特定容器,可以使用 `rm` 选项。此命令的语法为:
sudo docker rm YOUR_CONTAINER_ID
要查找要删除的容器的容器 ID,可以使用上面也讨论过的命令。
sudo docker ps -a
如果容器正在运行,则需要先停止容器,然后才能使用以下命令将其删除。
sudo docker stop YOUR_CONTAINER_ID
要删除 Docker 镜像,您首先需要删除该特定镜像的所有容器。之后,您可以使用以下命令删除镜像。
sudo docker rmi YOUR_IMAGE_ID
您可以使用上面也讨论过的以下命令获取特定镜像的镜像 ID。
sudo docker images
在交互式 shell 中运行容器
假设您已从 Docker Hub 拉取了一个 ubuntu 镜像,使用以下命令。
sudo docker pull ubuntu
现在,您想在交互式 shell 中运行 ubuntu 容器。您可以使用以下命令来实现此目的。
sudo docker run -it ubuntu
您现在可以使用单独的交互式命令 shell 访问 ubuntu 镜像。
尝试删除所有悬空卷
当您尝试删除容器时,与该容器关联的卷也可能被删除。这样的卷称为悬空卷。要查找所有悬空卷的列表,请使用以下命令。
sudo docker volume ls -f dangling=true
发出上述命令后,您将找到所有悬空卷的列表,包括其驱动程序名称和卷名称(如果存在)。
要避免悬空卷,请使用 `-v` 标志删除容器。
sudo docker rm -v YOUR_CONTAINER_ID
一些重要命令
这是一个精选列表,其中包含一些与镜像和 Docker 容器相关的最重要命令,如果您处理大量此类对象,这些命令将非常方便。
容器命令
要列出当前在您的系统中运行的所有容器,请使用命令 `docker container ls`
要强制停止正在运行的容器,请使用 `docker container kill container_id`
要获取特定正在运行的容器的详细信息,请使用 `docker inspect container_id`
镜像命令
要获取所有本地镜像的列表,请使用 `docker image ls`
要删除所有悬空镜像,请使用 `docker image prune`
总而言之,这些是处理大量镜像和容器时非常方便的顶级技巧列表,这些技巧肯定会帮助您有效地管理它们,从而节省大量时间。