如何使用命令行界面管理Docker容器

516 阅读5分钟

使用命令行界面管理Docker容器

在这篇文章中,我们将讨论一些直接从命令行界面管理Docker容器的最有效技术。我们将看看一些最经常使用但非常有效和高效的Docker命令的现实世界的例子。这些Docker命令使你的Docker系统井井有条,并通过删除不需要的Docker容器、镜像、卷和网络来节省磁盘空间。

简介

通过Docker,你可以以可移植容器的形式构建、测试和部署应用程序,几乎可以在任何地方使用。在使用Docker时,你可能很快就会得到大量无用的项目,它们占用了大量的磁盘空间,并堵塞了Docker命令的输出。除非你特别指示Docker删除,否则它不会删除这些不需要的项目,如容器、镜像、卷和网络。

使用交互式shell来运行docker容器

在大多数情况下,interactive shell 读取和写入用户的终端。当使用bash命令时,如果没有任何非选项参数,交互式行为就会被启用,除非选项是一个要读取的文本,或者shell启动时要从标准输入读取。在这种情况下,可以提供位置参数。

假设你已经用下面的命令从Docker Hub获得了一个Ubuntu镜像。

sudo docker pull ubuntu

现在你想用一个交互式shell来执行Ubuntu容器。从官方Docker注册中心下载Docker Ubuntu镜像后,你将在Ubuntu操作系统上使用bash来编辑和安装软件包。Docker注册中心是一个托管镜像的平台。你可以通过使用-I 标志,在交互式模式下执行Docker容器。

要做到这一点,请使用以下命令。

sudo docker run -it ubuntu

删除所有悬空的卷

Docker卷可以与Docker容器一起挂载,以便在许多Docker容器之间共享文件和目录。当你删除Docker容器时,与之相连的Docker卷仍然存在。Docker中的卷正是它们听起来的样子。

通过下面的命令,你可以得到一个所有悬空的Docker卷的列表。

sudo docker volume ls -f dangling=true

为了避免在删除Docker卷时留下悬空的卷,请使用-v flag

sudo docker rm -v <name-of-the-container>

要列出当前正在执行的Docker容器,请使用下面的指令序列。停止特定的容器,并用-v 标志将其删除,以防止它留下悬空卷。

一个接一个地运行下面的命令。

sudo docker container ls
sudo docker stop my-container-01
sudo docker rm -v my-container-01

第一个命令显示了当前正在运行的所有Docker容器的列表。在查看了所有Docker容器的名称之后,你可以使用第二个命令sudo docker stop my-container-01 ,停止一个特定的容器。容器的名称会写在stop

删除Docker容器和镜像

当Docker容器被停止时,它们不会被自动删除。它们只能通过—rm 参数来删除。但是,在删除一个Docker容器之前,你必须首先确保它没有在运行。

容器可以通过以下指令来停止和删除。

sudo docker ps -a
sudo docker stop <name-of-the-container>
sudo docker rm <name-of-the-container> 

第一条命令列出了你系统的所有容器。容器的状态可以在状态栏中找到。如果容器没有被退出,则需要在删除它之前停止它。在删除它们之前,你必须知道你想删除的容器的容器ID。缩写rm 代表删除。

在使用下面的命令删除一个Docker镜像之前,要先删除所有与之链接的容器。

sudo docker rmi <The-ID-of-the-image>

从上面的命令来看,sudo ,允许用户以另一个用户的安全权限运行程序。docker 命令显示,我们正在对一个docker执行命令。rmi 命令删除了由所给名称指定的docker对象。

使用别名

有些时候,我们必须重复相同的命令行指令,如果相关的命令包含参数,这就会变得更加困难。如果我们必须改变输出以使其可读,那就更难了。我们中的大多数人最终都会制作一些小抄来记录所有这些复杂的命令,以备我们需要再次执行它们。

我们可以通过利用alias 命令来避免反复输入或重复相同的命令,从而节省时间和精力。别名允许我们使用一个预定义的 "字符串 "来执行一条命令或一组指令,我们可以根据自己的喜好进行调整。

要处理别名,在你的/.bashrc 文件中创建和使用别名,并提及它们。

alias dockrm='docker rm'
alias docklist='docker ps -a'

上面的每个命令都是用来创建一个别名的。第一条命令创建了一个别名来删除一个docker容器,第二条命令用来创建一个别名来显示所有的docker容器,在/.bashrcps 代表进程状态,而-a 则提示没有运行的docker容器出现在列表里。

检查Docker容器

Dockerinspect 命令可以用来获取特定Docker容器的信息。它为你提供了关于该容器的所有信息,包括路径、创建日期、状态、驱动等等。容器名称是检查容器所需要的。

sudo docker container ls 
sudo docker container ls -a
sudo docker container inspect <name-of-the-container>

命令sudo docker container ls ,显示当前正在运行的所有Docker容器的列表。要查看未运行的Docker容器,请在ls 命令后添加-a 。终端中的ls 符号显示指定项目的所有目录。

总结

在这篇文章中,我们学习了使用命令行界面来管理Docker容器。我们通过在交互式shell中运行一个Docker容器,移除所有悬空的卷、Docker容器和镜像来完成这一工作。然后我们检查了Docker容器,并学习了使用别名。

我敦促读者使用从这篇文章中获得的知识,通过删除不需要的Docker容器、镜像和卷来保持他们的Docker系统的有序性,并节省磁盘空间。