原文作者:Jeff Hale
原文地址:https://towardsdatascience.com/15-docker-commands-you-should-know-970ea5203421
翻译:付新圆
在这篇文章中,咱们将学习 15 个 Dockers CLI 命令。如果你还不理解 Docker,请查看这个系列的其余局部进行学习,Docker 概念,生态系统,Dockerfile,Docker 映像。
Docker 命令约有十亿个(给或承受十亿个)。Docker 文档范畴很宽泛,但当您刚入门时,文档会十分宏大让你手足无措。在这篇文章中,我将重点介绍运行 Docker 的要害命令。
图:水果主题
之前的文章咱们都把文章的主题隐喻成食物,这里让咱们应用水果主题。蔬菜在对于减肥的文章中提供了养分。当初,美味的水果将为咱们提供养分,因为咱们学习的是要害 Docker 命令。
概述
回忆一下,Docker 映像是由 Dockerfile + 任何必要的依赖项组成的,还要记得 Docker 容器是一个 Docker 映像。若要应用 Docker 命令,首先须要晓得您解决的是映像还是容器。
- Docker 映像要么存在,要么不存在;
- Docker 容器要么存在,要么不存在;
- 存在的 Docker 容器要么正在运行,要么未运行。
当您晓得正在解决什么,就能够找到适宜该工作的命令。
共同点
以下是对于 Docker 命令须要理解的一些信息:
- Docker CLI 治理命令从 Docker 开始,而后是空间,而后是治理类别,而后是空间,而后是命令。例如,
dockerdocker container stop
进行一个容器。 - 援用特定容器或图像的命令须要该容器或映像的名称或 ID。
例如,docker container run my_app 是生成和运行名为 “my_app” 的命令。在整个示例中,我将应用 my_container 这个名称来示意泛型容器,my_image
,my_tag
等等也一样。
如果实用,我将独自提供命令,而后应用公共标记。后面有两个破折号的标记是该标记的全名。具备一个破折号的标记是残缺标记名称的快捷方式。例如,
-p
是 --port
缩写的标记。
图:标记提供命令选项
指标是将这些命令和标记留在您的记忆中,并作为本指南的参考。本指南实用于 Linux 和 Docker Engine 18.09.1 版和 API 1.39 版。
首先,咱们将查看容器的命令,而后再查看图像的命令。下一篇文章将介绍卷。上面是 15 个命令的列表 – 加上 3 个附加命令!
容器
应用docker container my_command
create
— 从图像创立容器
start
— 启动现有容器
run
—创立新容器并启动它
ls
— 列出正在运行的容器
inspect
— 查看无关容器的大量信息
logs
— 打印日志
stop
— 优雅地进行运行容器
kill
—忽然进行容器中的主过程
rm
—删除已进行的容器
图像
应用docker image my_command
build
— 生成映像
push
— 将映像推送到近程注册表
ls
— 列出图像
history
— 请参阅两头图像信息
inspect
— 查看大量无关图像的信息,包含图层
rm
— 删除图像
其余
docker version
—列出无关 Docker 客户端和服务器版本的信息
docker login
—登录到 Docker 注册表
docker system prune
—删除所有未应用的容器、未应用的网络和悬空图像
容器
容器开始
在日常生活中,术语 create、start 和 run 都有类似的语义。但每个命令都是一个独自的 Docker 命令,用于创立和 / 或启动一个容器。让咱们先看看创立一个容器。
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
的简短。将容器连贯到 STDIN、STDOUT 或 STDERR。
当初,咱们曾经创立了一个容器,让咱们开始它。
docker container start my_container
- 启动现有容器。
请留神,容器能够通过容器的 ID 或容器的名称援用。
docker container start my_container
图:开始
当初您曾经晓得如何创立和启动容器了,让咱们来谈谈最常见的 Docker 命令。它将 create
和
start
合并为一个命令:run
。
docker container run my_image
- 创立新容器并启动它。它也有很多抉择,让咱们看看几个。
docker container run -i -t -p 1000:8000 --rm my_image
-i
是 --interactive
的缩写。即便未连贯,也要放弃 STDIN 关上。
-t
是 --tty
的缩写。调配一个伪终端,将终端与集装箱的 STDIN 和 STDOUT 连贯。
您须要同时指定 -i
和-t
,而后通过终端外壳与容器进行交互。
-p
是 --port
的缩写。端口是与内部世界的接口。1000:8000
将 Docker 端口 8000 映射到计算机上的端口 1000。如果你有一个应用程序能够将某些内容输入到浏览器中,那么你能够将浏览器导航到本地主机 localhost:1000
并看到它。
--rm
当容器进行运行时,主动删除该容器。
让咱们看一些更多的例子。run
docker container run -it my_image my_command
sh
是能够在运行时指定的命令。sh
将在容器内启动 shell 会话,您能够通过终端与之交互。对于 Alpine 图像,sh
比 bash
更好,因为 Alpine 映像没有装置 bash
。键入exit
完结交互式 shell 会话。
请留神,咱们将 -i
和-t
合并到 -it
中。
docker container run -d my_image
-d
是 --detach
的缩写。在后盾运行容,。容许您在容器运行时将终端用于其余命令。
查看容器状态
如果您正在运行 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
- 忽然进行一个或多个正在运行的容器。就像扒掉电视插头一样。在大多数状况下,stop
是最好的抉择。
docker container kill $(docker ps -q)
- 敞开所有正在运行的容器。
图:杀死的蟑螂
而后删除容器,包含:
docker container rm my_container
- 删除一个或多个容器。
docker container rm $(docker ps -a -q)
- 删除所有未运行的容器。
这些就是 Docker 容器的八个根本命令。
回顾一下,首先创立一个容器,而后,启动容器;或将这些步骤与 docker run my_container
联合。而后,你的利用将运行。
而后,应用 docker stop my_container
进行容器;最终应用 docker rm my_container
删除容器。
当初,让咱们来看看制作称为图像的模具的神奇容器。
图像
上面是用于解决 Docker 映像的七个命令。
开发图像
docker image build -t my_repo/my_image:my_tag .
- 从位于指定门路或 URL 的 Dockerfile 构建名为 my_image 的 Docker 映像。
-t
是标记的简短。通知 Docker 应用提供的标记来标记图像。在 my_tag 这种状况下。
.
命令开端的(期间)通知 Docker 在当前工作目录中依据 Dockerfile 生成映像。
图:构建它
构建映像后,您须要把它推到近程注册表,以便使它被共享并依据须要被拉取。假如您要应用 Docker Hub,请转到浏览器中并创立一个帐户。它是收费的。
下一个命令不是图像命令,但在这里查看很有用,所以我要提一下。
docker login
- 登录到 Docker 注册表,提醒时输出用户名和明码。
图:推
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 注册表。提醒时输出用户名和明码。
docker system prune
呈现在下一篇文章中。Twitter 和 Reddit 上的读者认为,退出这个列表是件坏事。
docker system prune
- 删除所有未应用的容器、未应用的网络和悬空图像。
docker system prune -a --volumes
-a
是 --all
的缩写。删除未应用的图像,而不仅仅是悬空的图像。
--volumes
删除未应用的卷。咱们将在下一篇文章中探讨更多无关卷的文章。
治理命令
在 CLI 1.13 Docker 中引入了按逻辑分组并统一命名的治理命令名称。旧命令依然无效,但新命令使应用 Docker 更容易。本文的原始版本列出了旧名称。我更新了文章,依据读者倡议应用治理命令名称。请留神,此更改仅引入两个命令名称更改 – 在大多数状况下,它只是象征向命令增加 container
或image
。这里是命令的映射。
包
如果您刚刚开始应用 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 container my_command
create
- 从图像创立容器
start
- 启动现有容器
run
- 创立新容器并启动它
ls
- 列出正在运行的容器
inspect
- 查看无关容器的大量信息
logs
- 打印日志
stop
- 优雅地进行运行容器
kill
- 忽然进行容器中的次要过程
rm
- 删除已进行的容器
图像
应用docker image my_command
build
- 生成映像。
push
- 将映像推送到近程注册表
ls
- 列出图像
history
- 请参阅两头图像信息
inspect
- 查看大量无关图像的信息,包含图层
rm
- 删除图像
其余
docker version
- 列出无关 Docker 客户端和服务器版本的信息
docker login
- 登录到 Docker 注册表
docker system prune
- 删除所有未应用的容器、未应用的网络和悬空图像。
若要在应用 Docker 时查看 CLI 援用,只需在命令行中输出命令。
当初,您就能够应用 Docker 构建货色了!
结尾
如果您错过了本系列的晚期文章,请查看它们。第一个是:《Docker- 第 1 局部:什么是 Docker?》
心愿这些文章对您有帮忙。