Docker一通百通:10个关键命令带你解锁90%的容器化任务

Docker一通百通:10个关键命令带你解锁90%的容器化任务

作者:MobotStone 2023-07-18 06:48:03

云计算

云原生 在这篇文章中,我们将探讨每个开发者和系统管理员都应该了解的十个重要的Docker命令,以使他们的容器管理流程更加顺畅。从创建和启动容器,到列出可用的镜像,再到优雅地停止它们,这些命令将成为有效管理你的Docker环境的基石。

Docker通过引入一种轻量级且高效的打包应用程序及其依赖的方法——容器化,彻底改变了软件开发和部署的世界。

有了Docker,开发者可以创建被称为容器的隔离环境,这些容器能在不同平台上稳定运行,使得构建、部署和扩展应用程序变得更加容易。然而,要真正发挥Docker的力量,掌握有效管理容器的基本命令是必要的。

在这篇文章中,我们将探讨每个开发者和系统管理员都应该了解的十个重要的Docker命令,以使他们的容器管理流程更加顺畅。从创建和启动容器,到列出可用的镜像,再到优雅地停止它们,这些命令将成为有效管理你的Docker环境的基石。

通过掌握这些命令,你将获得扎实的基础,以便高效和有效地管理Docker容器。无论你是刚开始接触Docker的初学者,还是希望提升你的容器管理技能的有经验的用户,这篇文章都将提供有价值的见解和实用的例子,帮助你自信地驾驭Docker的世界。让我们深入挖掘,释放Docker容器化能力的全部潜力吧。

1、docker run

docker run命令被用于基于Docker镜像创建并启动一个新的容器。运行容器的基本语法如下:

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
  1. OPTIONS:可以用于自定义容器行为的额外选项,例如指定ports、volumes、环境变量等。
  2. IMAGE :用于创建容器的Docker镜像的名称。
  3. COMMAND:(可选)在容器内执行的命令。
  4. ARG:(可选)传递给容器内命令的参数。

例如,要运行一个基于“ubuntu”镜像的容器,并在容器内执行ls命令,你可以使用以下命令:

docker run ubuntu ls

这将使用“ubuntu”image 创建一个新的容器并运行ls命令,列出容器文件系统内的文件和目录。

请注意,如果指定的image 在本地不可用,Docker会在创建容器之前自动从Docker registry拉取镜像。

2、docker ps

docker ps命令用于列出在你的 Docker 主机上正在运行的容器。它提供的信息包括容器 ID、使用的镜像、正在执行的命令、状态和端口映射等。下面是基本的语法:

docker ps [OPTIONS]

默认情况下,docker ps 只显示正在运行的容器。如果你想查看所有容器,包括已停止或已退出的容器,可以使用-a选项:

docker ps -a

这将显示你的 Docker 主机上所有容器的列表,以及它们各自的详细信息。

docker ps命令的输出包括 CONTAINER ID、IMAGE、COMMAND、CREATED、STATUS、PORTS 和 NAMES 等列。下面是对这些列的简要解释:

  • CONTAINER ID:容器的唯一标识符。
  • IMAGE:用于创建容器的镜像的名称或 ID。
  • COMMAND:在容器内部执行的命令。
  • CREATED:时间戳,表示容器的创建时间。
  • STATUS:容器的当前状态(例如,运行中、已停止、已退出)。
  • PORTS:容器与主机系统之间的端口映射。
  • NAMES:容器的自动生成或用户指定的名称。

默认情况下,docker ps命令提供了容器的摘要视图。如果你想要更详细的信息,可以添加–format选项,后跟一个格式模板。例如:

docker ps --format "ID: {{.ID}}, Image: {{.Image}}, Status: {{.Status}}"

这将仅显示每个容器的容器 ID、镜像和状态信息。请注意,运行docker ps命令需要在你的系统上安装和运行 Docker。

3、docker stop

docker stop命令用于停止一个或多个正在运行的容器。它向容器的主进程发送一个信号,请求它优雅地停止运行。下面是基本的语法:

docker stop [OPTIONS] CONTAINER [CONTAINER...]
  • OPTIONS:可以用来自定义停止行为的额外选项。例如,你可以使用–time或-t选项指定超时时间,让容器有更多时间优雅地停止运行,而不是强制终止它。
  • CONTAINER :要停止的容器的名称或 ID。你可以用空格分隔指定多个容器。

例如,要停止名称为my-container的容器,你可以使用以下命令:

docker stop my-container

如果你想停止多个容器,可以列出它们的名称或 ID,用空格分隔:

docker stop container1 container2 container3

当执行docker stop命令时,Docker向容器发送一个 SIGTERM 信号,允许容器内部的进程执行任何必要的清理任务,并优雅地关闭。如果进程在给定的超时时间内(默认为10秒)没有停止,Docker可以发送一个 SIGKILL 信号来强制终止容器。

4、docker rm

docker rm 命令用于从你的 Docker 主机中删除一个或多个已停止的容器。它永久删除指定的容器,并释放相关的资源。下面是基本的语法:

docker rm [OPTIONS] CONTAINER [CONTAINER...]
  • OPTIONS:可以用来自定义删除行为的额外选项。例如,你可以使用-f或–force选项来强制删除正在运行的容器。
  • CONTAINER:要删除的容器的名称或 ID。你可以用空格分隔指定多个容器。

例如,要删除名称为my-container的容器,你可以使用以下命令:

docker rm my-container

如果你想删除多个容器,可以列出它们的名称或 ID,用空格分隔:

docker rm container1 container2 container3

默认情况下,docker rm命令只删除已停止的容器。如果你想同时删除正在运行的容器,可以使用-f或–force选项:

docker rm -f container1 container2

请注意,删除容器将永久删除它,包括容器内部的任何数据或更改。如果你要删除正在运行的容器,它会先被停止,然后再被删除。

此外,你还可以在docker rm命令中使用-v或–volumes选项,如果有的话,一并删除与容器关联的卷。

5、docker images

docker images命令用于列出你的 Docker 主机上可用的 Docker 镜像。它显示有关镜像的信息,如repository, tag, image ID、创建日期和大小。下面是基本的语法:

docker images [OPTIONS] [REPOSITORY[:TAG]]
  • OPTIONS:可以用来自定义输出或过滤镜像的额外选项。例如,你可以使用–format选项来指定输出的格式模板,或者使用-a或–all选项来显示所有镜像,包括中间镜像层。
  • REPOSITORY:(可选)镜像的仓库名称。
  • TAG:(可选)镜像的标签。

默认情况下,docker images命令列出你的 Docker 主机上所有可用的镜像。例如:

docker images

这将显示一个镜像表格,包括 REPOSITORY、TAG、IMAGE ID、CREATED 和 SIZE 等列。REPOSITORY 和 TAG 组合在一起形成镜像的唯一标识符。

如果你想根据仓库或标签对镜像进行过滤,可以提供仓库和/或标签名称作为参数。例如,列出来自特定仓库的镜像:

docker images my-repo

列出具有特定标签的镜像:

docker images my-repo:my-tag

你还可以组合选项来进一步自定义输出。例如,显示包括中间层镜像在内的所有镜像,并使用自定义格式进行输出:

docker images -a --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"

这将以表格格式显示镜像,只显示 image ID, repository和tag 信息。

6、docker rmi

docker rmi命令用于从你的 Docker 主机中删除一个或多个 Docker 镜像。它会永久删除你本地镜像缓存中指定的镜像。下面是基本的语法:

docker rmi [OPTIONS] IMAGE [IMAGE...]
  • OPTIONS:可以用来自定义删除行为的额外选项。例如,你可以使用-f或–force选项来强制删除镜像,即使它正被运行的容器使用。
  • IMAGE:要删除的镜像的名称或 ID。你可以用空格分隔指定多个镜像。

例如,要删除名称为my-image:latest的镜像,你可以使用以下命令:

docker rmi my-image:latest

如果你想删除多个镜像,可以列出它们的名称或 ID,用空格分隔:

docker rmi image1 image2 image3

默认情况下,docker rmi命令只会删除没有被任何容器使用的镜像。如果你尝试删除当前被一个或多个容器使用的镜像,Docker 会报错。在这种情况下,你可以使用-f或–force选项强制删除镜像,即使它正在使用中:

docker rmi -f my-image:latest

请注意,删除镜像将会永久从你的本地镜像缓存中删除它。如果你将来需要再次使用该镜像,你需要从 Docker 注册表中拉取它,或者使用 Dockerfile 重新构建它。

此外,你还可以在docker rmi命令中使用–no-prune选项,如果存在未标记的父镜像,则防止自动删除它们。

7、docker build

docker build命令用于根据 Dockerfile 构建一个 Docker 镜像。它允许你定义创建自定义镜像所需的指令和依赖关系。下面是基本的语法:

docker build [OPTIONS] PATH | URL | -
  • OPTIONS:可以用来自定义构建过程的额外选项。一些常用的选项包括-t或–tag用于指定镜像的名称和可选标签,-f或–file用于指定 Dockerfile 的位置,–build-arg用于传递构建时变量给 Dockerfile。
  • PATH | URL | -:指向包含 Dockerfile 的目录的路径,Git 仓库的 URL,或者“-”表示从标准输入构建。

例如,要使用当前目录中的 Dockerfile 构建一个镜像,并将其标记为my-image:latest,你可以使用以下命令:

docker build -t my-image:latest .

这里的“.”表示 Dockerfile 在当前目录中。

如果你的 Dockerfile 存在于其他位置,你可以使用-f选项指定其路径:

docker build -t my-image:latest -f /path/to/Dockerfile .

在构建过程中,Docker 读取 Dockerfile 中的指令,执行每个步骤,并根据需要创建中间镜像。最终生成的镜像将会被打上指定的名称和可选的标签。

你可以在 Dockerfile 中定义额外的指令,例如复制文件、安装依赖项、设置环境变量或暴露端口,以根据你的需求自定义镜像。

8、docker exec

docker exec命令用于在正在运行的 Docker 容器内执行命令。它允许你以交互或分离模式运行命令。下面是基本的语法:

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
  • OPTIONS:可以用来自定义执行行为的额外选项。一些常用的选项包括-i或–interactive用于保持 STDIN 开放以进行交互式命令,-t或–tty用于分配一个伪终端,以及-d或–detach用于在后台运行命令。
  • CONTAINER :要在其中执行命令的容器的名称或 ID。
  • COMMAND:要在容器内部执行的命令。
  • ARG:(可选)传递给容器内部命令的参数。

例如,要在名为my-container的容器内执行ls命令,你可以使用以下命令:

docker exec my-container ls

这将在指定的容器内运行“ls”命令,并显示文件和目录的列表。

如果你想运行一个交互式命令,比如在容器内启动一个 shell,你可以同时使用-it选项:

docker exec -it my-container bash

这将在容器内启动一个交互式的 shell 会话,允许你交互地执行多个命令。

请注意,容器必须处于运行状态才能使用docker exec命令。如果你需要在已停止或已退出的容器中执行命令,你可以先使用docker start命令启动容器,然后再使用docker exec运行命令。

9、docker pull

docker pull命令用于从 Docker 注册表(例如 Docker Hub)下载 Docker 镜像。它会获取指定的镜像或镜像,并将它们保存到你的本地镜像缓存中。下面是基本的语法:

docker pull [OPTIONS] IMAGE[:TAG]
  • OPTIONS:可以用来自定义下载过程的额外选项。一些常用的选项包括–all-tags用于拉取镜像的所有可用标签,–platform用于指定要拉取的镜像的平台,以及–quiet用于抑制进度输出。
  • IMAGE:要从 Docker 注册表中拉取的镜像的名称。它可以是“仓库/镜像”的格式或“仓库/镜像:标签”的格式。如果未指定标签,默认使用latest。

例如,要从 Docker Hub 拉取最新版本的“ubuntu”镜像,你可以使用以下命令:

docker pull ubuntu

如果你想拉取特定标签的镜像版本,可以指定标签:

docker pull ubuntu:20.04

指定的镜像将会从 Docker 注册表中下载,并保存到你的本地镜像缓存中。一旦镜像被拉取,你就可以使用它来创建和运行在你的 Docker 主机上的容器。

10、docker push

docker push命令用于将 Docker 镜像上传到 Docker 注册表(例如 Docker Hub 或私有注册表)。它允许你与他人共享你本地构建或修改的镜像。下面是基本的语法:

docker push [OPTIONS] NAME[:TAG]
  • OPTIONS:可以用来自定义上传过程的额外选项。一些常用的选项包括–all-tags用于上传镜像的所有标签,–disable-content-trust用于跳过内容信任验证,以及–quiet用于抑制进度输出。
  • NAME:要上传的镜像的名称。它应该包括仓库和镜像名。例如,“用户名/仓库名:镜像名”。
  • TAG:(可选)要上传的镜像的标签。如果未指定标签,默认使用latest标签。

在推送镜像之前,你需要确保已经通过身份验证登录到 Docker 注册表。你可以使用docker login命令登录到注册表,提供用户名、密码和注册表的 URL(如果需要)。

例如,要将名为my-image的镜像与“latest”标签推送到 Docker Hub,假设你已经登录到 Docker Hub,你可以使用以下命令:

docker push username/my-image:latest

指定的镜像将会被上传到 Docker 注册表,并对他人可供下载和使用。

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/241293.html<

(0)
管理的头像管理
上一篇2025-04-24 06:40
下一篇 2025-04-24 06:42

相关推荐

  • 站群服务器和普通服务器到底哪个更适合GEO,怎么选?

    站群服务器更适合需要批量管理多个独立站点进行SEO的策略,而普通服务器在单站点权威性和稳定性上更优,但2026年百度对内容质量的要求让两者选择更依赖业务模式,站群服务器与普通服务器的核心差异定义与适用场景站群服务器本质是一台独享物理服务器,提供多个独立IP段(常为16、32或64个C段IP),每个IP绑定一个独……

    2026-07-28
    0
  • 物理服务器和云服务器做站群到底选哪个,哪个更稳定?

    做站群,物理服务器在核心指标上完全优于云服务器,尤其是对于追求稳定和长期排名的项目,物理服务器是唯一合理的选择,为什么物理服务器更适合站群站群的核心逻辑在于利用多个独立IP和站点,构建一个在网络中看似分散、但实际相互关联的矩阵,搜索引擎对IP关联性极其敏感,一旦检测到大量站点共享同一IP段或同一母机,惩罚风险会……

    2026-07-28
    0
  • 国内高防服务器哪家防御真实靠谱,怎么选?

    国内高防服务器哪家防御真实靠谱?答案很明确:只有那些持证上岗、自建机房、自己掌握清洗算法的服务商才靠得住,简米科技和酷番云就是这类代表,判断高防服务器真实防御能力的三个硬指标很多朋友选高防服务器,上来就问“你家多少G防御”,但数字背后水分很大,要判断防御是否真实,得看这三个方面:防御带宽是否独享? 有些服务商宣……

    2026-07-28
    0
  • 裸金属服务器和物理服务器有什么区别?,怎么选?

    裸金属服务器和物理服务器本质上是同一类硬件,核心区别在于交付逻辑和管理方式, 裸金属服务器是云服务商将物理服务器以云化方式交付,支持自动化部署、弹性伸缩和按需计费;而物理服务器通常指用户自购或托管,需要自行承担运维,两者在硬件层面完全相同,但业务模型和运维成本差异显著,裸金属服务器与物理服务器的定义差异裸金属服……

    2026-07-28
    0
  • 做GEO站群选哪家服务器服务商靠谱,怎么选?

    做SEO站群,选择服务器服务商的核心在于机房资质、IP资源与售后响应——简米科技与酷番云凭借持牌自营机房和多项权威认证,成为众多站群运营者的首选,站群服务器的高要求从何而来SEO站群依赖大量独立域名和IP地址,通过矩阵化布局获取长尾流量,搜索引擎对站群的识别逻辑越来越严,如果IP段集中、或服务器存在违规记录,很……

    2026-07-28
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注