学习Docker,第5部分:命令

我们正在发布的Docker系列的今天部分专门针对Docker团队。 Docker 文档包含了许多命令的详细说明,但是刚开始使用此平台的人可能会迷失其中,因此这里有将近二十打的最重要的Docker命令。 秉承既定传统,我们将团队与散落的浆果进行比较。

第1部分:基础知识
第2部分:术语和概念
第3部分:Dockerfile文件
第4部分:缩小图像尺寸并加快其组装速度
第5部分:团队
第6部分:处理数据


复习


让我们回想一下,Docker映像是基于Dockerfile文件创建的,这些文件描述了构建映像所需的一切。 此外,我们不要忘记该容器是被生动调用的Docker映像。 为了有效地使用Docker命令,首先,您需要了解映像或容器-正在处理的内容。 如果考虑映像和容器,则可以看到Docker映像可以存在或不存在。 Docker容器也可以这样说。 此外,现有的Docker容器可以处于运行状态或非活动状态。

一旦弄清楚了您真正需要配合的东西,就可以找到合适的团队。

Docker命令概述


想要与Docker合作的人应该了解以下几点:

  • 用于控制某些内容的Docker命令行界面命令以docker关键字开头,后跟一个空格,然后指示某个命令将定向到什么,然后是另一个空间,然后是命令本身。 例如,以下命令是这样构造的: docker container stop
  • 如果命令定向到特定的图像或容器,则在其中使用该图像或容器的名称或标识符。

例如, docker container run my_app是用于创建和运行名为my_app的容器的命令。 在下面的示例中,我们将调用my_container ,图像my_image ,标签my_tag等。

首先,我们将考虑团队本身,然后考虑可以与之一起使用的标志(如果存在)。 如果标志前面有两个破折号,则这是其完整形状,带有一个破折号的标志是标志的删节版本。 它们的行为方式相同。 例如, -p--port标志的缩写形式。

本文的目的是概述Docker命令。 因此,您对它们有一个大致的了解,并且知道了由于这些命令而可用的平台功能,可以在必要时找到有关它们的详细信息。 所讨论的团队使用Docker引擎18.09.1版和API版本1.39在Linux系列OS上进行了测试。

关于Docker CLI 1.13支持的命令的注释


Docker版本1.13命令行界面提供了更新的,按逻辑分组的命令。 同时,旧团队仍然可以使用,但是使用新团队更容易,尤其是对于初学者而言。 例如,在1.12版中使用了docker create形式的命令,而在1.13版中docker createdocker container create命令。 有关匹配新老团队的信息,请参见此处

首先,我们查看用于管理容器的命令,然后讨论图像管理。

容器管理命令


用于管理容器的一般命令方案如下:

 docker container my_command 

这是在使用my_command地方可以替换的命令:

  • create -从图像创建容器。
  • start启动现有容器。
  • run -创建一个容器并启动它。
  • ls正在运行的容器列表。
  • inspect -显示有关容器的详细信息。
  • logs -日志输出。
  • SIGTERM通过将SIGTERM信号发送到主容器进程,以及一段时间后发送SIGKILL来停止正在运行的容器。
  • kill停止运行中的容器并将SIGKILL信号发送到主容器进程。
  • rm删除停止的容器。

图像管理命令


对于图像管理,使用如下命令:

 docker image my_command 

以下是该组中的一些团队:

  • build -建立图像。
  • push将图像发送到远程注册表。
  • ls图片列表。
  • history -显示有关图像图层的信息。
  • inspect显示有关图像的详细信息,包括有关图层的信息。
  • rm删除图像。

不同的团队


  • docker version Docker客户端和服务器的docker version信息。
  • docker login -Docker注册表项
  • docker system prune删除未分配名称和标签的未使用的容器,网络和图像。

现在更详细地考虑这些命令。

货柜


the容器开始存在


在使用容器的初始阶段,将使用createstartrun命令。 它们分别用于创建容器,启动容器以及创建和启动容器。

这是从图像创建容器的命令:

 docker container create my_repo/my_image:my_tag 

在以下示例中, my_repo/my_image:my_tag将简化为my_image
create命令接受许多标志 。 例如,可以用以下格式编写:

 docker container create -a STDIN my_image 

-a标志是--attach标志的缩写。 该标志允许您将容器连接到STDINSTDOUTSTDERR

创建容器后,可以使用以下命令将其启动:

 docker container start my_container 

请注意,您可以使用其ID或名称在命令中引用该容器。

现在看一下允许您创建和运行容器的命令:

 docker container run my_image 

此命令还可以接受许多命令行参数 。 考虑此类结构的示例:

 docker container run -i -t -p 1000:8000 --rm my_image 

-i标志是--interactive缩写。 由于此标志,即使容器未连接到STDINSTDIN流也保持打开状态。

-t标志是--tty 。 由于此标志,突出显示了伪终端,该伪终端将使用的终端连接到容器STDINSTDOUT流。

为了能够通过终端与容器进行交互,您需要一起使用-i-t标志。

-p标志是--port缩写。 端口是容器与外界交互的接口。 设计1000:8000将Docker 8000端口重定向到运行该容器1000计算机的端口1000 。 如果某个应用程序正在容器中运行,并且可以将某些内容输出到浏览器,则在本例中,要访问它,您可以转到浏览器,位于localhost:1000

--rm标志在完成后会自动删除该容器。

让我们看一下run命令的更多示例:

 docker container run -it my_image my_command 

在这种设计中,可以使用sh命令,这将在可以通过终端与之交互的容器中创建终端会话。 当使用基于Alpine的映像时,最好专注于使用sh而不是bash ,因为在这些映像中,默认情况下未安装bash 。 要退出交互式会话,请使用exit

请注意,这里我们在-it组合了-i-t标志。

这是使用run命令的另一个示例:

 docker container run -d my_image 

-d标志是--detach缩写。 此命令在后台启动容器。 这使您可以在容器运行时使用启动容器的终端来执行其他命令。

container确认集装箱状态


如果您正在运行Docker容器并想知道这些容器是什么,则需要列出它们。 您可以使用以下命令执行此操作:

 docker container ls 

此命令显示正在运行的容器的列表,并为该列表提供一些有关它们的有用信息。 这是此命令的另一个示例:

 docker container ls -a -s 

此命令的-a开关是--all缩写。 使用此键,您可以显示有关所有容器的信息,而不仅仅是运行容器的信息。

-s--size的简写。 它允许您显示容器的尺寸。

这是一个显示有关容器的详细信息的命令:

 docker container inspect my_container 

这是显示容器日志的命令:

 docker container logs my_container 

▍容器关闭


有时需要停止工作容器。 为此,请使用以下命令:

 docker container stop my_container 

它使您可以停止运行容器,从而使其正确关闭。 默认情况下,容器将关闭10秒。

如果需要快速停止容器而不用担心其工作是否正确完成,则可以使用以下命令:

 docker container kill my_container 

如果将工作容器与打开的电视进行比较,则kill命令类似于通过断开电视电源来关闭电视。 因此,在大多数情况下,建议使用stop命令停止容器。

这是允许您快速停止所有正在运行的容器的命令:

 docker container kill $(docker ps -q) 

要删除停止的容器,可以使用以下命令:

 docker container rm my_container 

这是一条命令,可用于删除在调用此命令时未执行的所有容器:

 docker container rm $(docker ps -a -q) 

总结本节。 首先,创建一个容器,然后启动它,或使用docker run my_container形式的命令将这两个步骤组合在一起。 之后,启动容器化的应用程序。

然后使用docker stop my_container 。 要删除容器,请使用docker rm my_container

现在,让我们讨论用于处理图像的命令,以及用于创建容器的模板。

图像


▍创建图像


这是一个允许您收集Docker映像的命令:

 docker image build -t my_repo/my_image:my_tag . 

在这种情况下,将使用名称my_image创建my_image ;在其组装过程中,将使用位于指定路径或URL的Dockerfile文件。

-t标志是--tag 。 它告诉Docker必须为创建的映像分配命令中提供的标签。 在这种情况下,它是my_tag

命令末尾的点表示必须使用位于当前工作目录中的Dockerfile文件收集映像。

组装映像后,可以将其发送到远程注册表。 因此,其他人将可以使用它,可以将其下载并在另一台计算机上运行。 假设您要使用Docker Hub 。 如果是这样,您将需要在此处创建一个帐户。 免费使用此资源。

注册Docker Hub后,您需要登录。 并且尽管用于此的命令并不直接适用于用于处理图像的命令,但在此处考虑它会很有用。 这是以下命令:

 docker login 

它允许您登录到Docker Hub帐户。 要登录,您需要输入用户名和密码。

登录后,您可以将图像发送到注册表。 这样做是这样的:

 docker image push my_repo/my_image:my_tag 

现在您已经有了几种类型的图像,可以使用特殊命令浏览它们。

▍影像研究


这是显示图像列表的命令,包括有关图像尺寸的信息:

 docker image ls 

以下命令允许您显示有关组成图像的中间图像的信息,尤其是有关它们的大小和创建方式的数据:

 docker image history my_image 

这是显示有关图像的详细信息的命令,其中包括有关构成图像的图层的数据:

 docker image inspect my_image 

如果创建了这么多图像,可能会发生其中一些图像需要删除的情况。

▍删除图像


这是允许您删除指定图像的命令:

 docker image rm my_image 

如果映像存储在远程存储库中,则不会从那里删除它。

这是一个允许您删除所有本地图像的命令:

 docker image rm $(docker images -a -q) 

请谨慎使用此命令,但应注意,使用该命令时,不会删除远程存储库中存储的图像。 这是在存储库中存储映像的好处之一。

我们检查了用于管理容器和图像的基本命令。 现在让我们谈谈更多的团队。

不同的团队


这是显示Docker客户端和服务器的版本信息的命令:

 docker version 

您已经知道此命令,用于输入Docker注册表:

 docker login 

此命令允许您删除未分配名称和标签的未使用的容器,网络和图像:

 docker system prune 

这是一个用法示例:

 docker system prune -a --volumes 

-a开关是--all的简写,允许您删除未使用的图像,而不仅仅是未分配名称和标记的图像。

使用--volumes可以删除未使用的卷。

总结


在本文中,我们介绍了有用的Docker命令。 如果您刚刚开始使用Docker,则应注意以下三个最重要的命令:

创建并运行一个容器:

 docker container run my_image 

建立图片:

 docker image build -t my_repo/my_image:my_tag . 

将映像上传到远程存储库:

 docker image push my_repo/my_image:my_tag 

为了查看有关Docker命令的帮助,您可以在终端中执行docker命令。 在这里,您可以在Docker命令行界面上找到帮助。

下次,我们将讨论在Docker中处理数据。

亲爱的读者们! 如果使用Docker,则可能会有自己的常用命令列表。 如果是这样,请共享此列表。

Source: https://habr.com/ru/post/zh-CN440660/


All Articles