当前位置: 首页 > 科技观察

Docker命令行简介:这18条,你要知道

时间:2023-03-12 20:58:22 科技观察

Docker有几千条命令行。因此,Docker的文档内容非常丰富,同时对于刚入门的新手来说也是会让人不知所措。在本文中,我将重点介绍运行Docker的关键命令。前言一个Docker镜像由一个Dockerfile和一些必要的依赖组成,一个Docker容器就是一个动态的Docker镜像。要使用Docker命令,您首先需要知道您是在处理图像还是容器。一旦你知道你是在处理图像还是容器,你就可以找到正确的命令。命令的通用性你需要了解一些有关Docker命令的规则:DockerCLI管理命令以docker开头,然后是一个空格,然后是管理类别,然后是一个空格,最后是命令。例如,命令dockercontainerstop停止容器。引用特定容器或映像的命令需要该容器或映像的名称或ID。例如,dockercontainerrunmy_app是用于构建和运行名为my_app的容器的命令。在本文的示例中,我将使用名称my_container来指代通用容器。my_image和my_tag也是如此。我将分别提供命令和常用标志。前面有两个破折号的标志是标志的全名。带有一个破折号的徽标是完整徽标名称的缩写。例如,-p是--port标志的缩写。本文的目的是让您牢记这些命令和标志,希望您在创建容器或构建镜像时可以使用本指南作为参考。本指南适用于Linux和Docker引擎版本18.09.1和API版本1.39。我们先了解一下容器命令,再看看镜像命令。容器命令使用dockercontainermy_commandcreate—从镜像创建容器start—启动现有容器run—创建新容器并启动ls—列出正在运行的容器inspect—查看容器信息logs—printlogstop—优雅地停止runningcontainerkill-立即停止容器中的主进程rm-删除停止的容器镜像命令usedockerimagemy_commandbuild-构建镜像push-将镜像推送到远程镜像仓库ls-list镜像历史--查看中间镜像信息inspect--查看镜像信息,包括图层rm--删除镜像容器&镜像dockerversion--列出Docker客户端和服务器版本信息dockerlogin--登录Docker镜像仓库dockersystemprune--删除所有未使用的容器、网络和未命名镜像(悬挂图像)容器命令解释启动容器术语“创建”、“启动”和“运行”具有相似的语义日常生活中的滑稽动作,但每个都是用于创建和/或启动容器的独立Docker命令。我们先来看看创建容器的命令。dockercontainercreatemy_repo/my_image:my_tag—从图像创建容器我将在下面将my_repo/my_image:my_tag缩写为my_image。您可以传递多个标志来创建。dockercontainercreate-aSTDINmy_image-a是--attach的缩写,指的是将容器连接到STDIN、STDOUT或STDERR。现在我们已经创建了一个容器,让我们启动它。dockercontainerstartmy_container—启动现有容器。请注意,可以通过容器ID或容器名称来引用容器。dockercontainerstartmy_container既然您知道如何创建和启动容器,让我们看看最常用的Docker命令。它将创建和启动合并为一个命令:运行。dockercontainerrunmy_image—创建一个新容器并启动它。该命令还有很多选项。让我们来看看其中的几个。dockercontainerrun-i-t-p1000:8000--rmmy_image-i是--interactive的缩写,即使没有连接,保持STDIN打开;-t是--tty的缩写,它会分配一个伪终端,将终端连接到容器的STDIN和STDOUT。您需要指定-i和-t才能通过终端shell与容器交互。-p是–port的缩写。端口是与外界的接口。1000:8000将Docker端口8000映射到您计算机上的端口1000。如果您有一个向浏览器输出一些内容的应用程序,您可以将浏览器导航到localhost:1000并查看它。--rm自动删除停止的容器。让我们再看几个run的例子。dockercontainerrun-itmy_imagemy_commandsh是您可以在运行时指定的命令,它将在容器内启动一个shell会话,您可以通过终端与之交互。对于Alpine镜像,sh优于bash,因为Alpine镜像没有安装bash。键入exit以结束交互式shell会话。请注意,我们将-i和-t合并为-it。dockercontainerrun-dmy_image-d是--detach的缩写,意思是在后台运行容器,让你在容器运行的同时使用终端执行其他命令。检查容器状态如果你有很多正在运行的Docker容器,并且想找到与哪个容器进行交互,那么你需要列出它们。dockercontainerls—列出正在运行的容器并提供有关它们的有用信息。dockercontainerls-a-s-a是--all的缩写,列出所有容器(不仅仅是运行中的容器)-s是--size的缩写,列出每个容器的大小。dockercontainerinspectmy_container—查看有关容器的信息dockercontainerlogsmy_container—列出容器日志停止正在运行的容器。在容器关闭之前提供默认的10秒来完成任何进程。如果您认为10秒太长,可以使用以下命令:dockercontainerkillmy_container-立即停止一个或多个正在运行的容器。就像拔掉电视一样。但在大多数情况下,建议使用停止命令。dockercontainerkill$(dockerps-q)—终止所有正在运行的容器您需要使用以下命令删除容器:dockercontainerrmmy_container—删除一个或多个容器dockercontainerrm$(dockerps-a-q)—删除allnon-runningcontainer以上是Docker容器的关键命令。接下来我们看一下关于镜像的命令。镜像命令详解以下是Docker镜像构建镜像使用的7条命令dockerimagebuild-tmy_repo/my_image:my_tag。在指定路径或url的Dockerfile中构建名为my_image的Docker镜像。-t是tag的缩写,它告诉docker使用提供的标签来标记图像,在本例中为my_tag。命令末尾的句点(.)告诉Docker从当前工作目录中的Dockerfile构建镜像。构建镜像后,您希望将其推送到远程存储库,以便在需要时进行共享和拉取。那么下一个命令就很有用了,虽然不是镜像命令。dockerlogin—登录Docker镜像仓库,根据提示输入用户名和密码dockerimagepushmy_repo/my_image:my_tag—推送镜像到镜像仓库。获得这些图像后,您可能想要查看它们。检查图像dockerimagels—列出您的图像和每个图像的大小dockerimagehistorymy_image—显示图像的中间图像,包括大小及其创建方式清理图像有时您还需要清理图像。清理图像dockerimagermmy_image—删除指定图像。如果图像存储在注册表中,则该图像仍然可用。dockerimagerm$(dockerimages-a-q)—删除所有图像。必须小心使用此命令。请注意,已经推送到远程仓库的镜像仍然可以保存,这是镜像仓库的一个优势。这些是与Docker镜像相关的最重要的命令。