您需要了解的最常用的20条Docker命令

您需要了解的最常用的20条Docker命令

Docker 是一个帮助开发人员构建和部署容器化应用程序的平台。它通过为管理这些应用程序提供轻量级虚拟化环境,帮助解决操作系统兼容性难题。

Docker 的主要命令行界面(CLI)为开发人员使用容器提供了强大的工具。从基本命令 docker 开始,CLI 支持近 60 个子命令,其中大部分都接受大量命令行参数,以处理不同的任务。

掌握 Docker CLI

你的 Docker 环境可能是开源的 Docker Engine,也可能是用户友好的图形用户界面 Docker Desktop。在 Docker Engine 环境中,CLI 将是你的主要界面,但如果你安装了 Docker Desktop,你也可以使用命令行工具。

我们认为,即使是 Docker Desktop 的用户,一旦熟悉了至少这 20 条基本的 docker 命令,也会发现自己已经开始使用 CLI 了。

你应该知道的 Docker 命令

让我们深入了解一下哪些 Docker 命令是你应该最熟悉的。

  1. docker system
  2. docker context
  3. docker pause 和 unpause
  4. docker rm
  5. docker rmi
  6. docker volume
  7. docker search
  8. docker push
  9. docker pull
  10. docker ps
  11. docker tag
  12. docker rename
  13. docker commit
  14. docker network
  15. docker history
  16. docker update
  17. docker plugin install
  18. docker container
  19. docker logs
  20. docker swarm

1. docker system

docker system  命令有助于检查和管理 Docker 环境。它支持用于执行特定管理相关任务的命令行参数,包括

  • df 显示磁盘的使用情况
  • prune 删除未使用的网络、容器、映像或卷
  • info 显示系统相关信息
  • events 实时显示系统事件日志

下面是执行 docker system prune 后的初始提示。

docker system prune 输出

docker system prune 输出

2. docker context

该命令可帮助您导航和配置不同的上下文。在 Docker 中,上下文包括名称、传输层安全信息、端点配置和协调器。

一些  docker context 参数:

  • ls 显示默认上下文的详细信息
  • inspect [CONTEXT} 检查指定的上下文
  • create [CONTEXT] 创建一个新的上下文
  • use [CONTEXT] 在上下文之间切换

下面是  docker context ls 输出的示例:

docker context ls 输出

docker context ls 输出

3. docker pause 和 unpause

docker pause 命令会冻结容器的活动进程。要运行它,必须指定容器的名称,如下所示:

docker pause [CONTAINER]

下面是暂停容器后的输出示例。

docker pause 输出

docker pause 输出

 docker unause 命令会恢复已暂停的容器进程。与前一条命令一样,你必须指定容器名称,如下所示:

docker unpause [CONTAINER]

下面是取消暂停容器后的输出示例。

docker unpause 输出

docker unpause 输出

4. docker rm

该命令可移除容器、卷和网络。它允许根据组件的属性选择要移除的组件。例如,你可以强制移除正在运行的容器或所有指定的容器:

docker rm [CONTAINER] 移除指定名称的容器。该命令的输出截图如下。

docker rm 输出

docker rm 输出

5. docker rmi

使用该命令可以删除图像。您可以删除单个图像,也可以同时删除多个图像。您可以使用短 ID 或长 ID 来描述要删除的图像。该命令对于保持主机节点的整洁和高效非常重要。

图像删除命令使用以下结构:

docker rmi [IMAGE ID]

下面是其输出示例。

docker rmi 输出

docker rmi 输出

6. docker volume

该命令允许你管理 Docker 中的卷。你可以用它来创建、移除、列出和检查卷。

docker volume 的一些参数如下:

  • create [OPTIONAL NAME] 创建一个新卷。你可以指定卷名,也可以让 Docker 随机生成一个卷名。
  • ls 列出可用的卷
  • inspect [NAME] 显示卷的详细信息。
  • rm [NAME] 从 Docker 中删除卷。

下面是创建卷后的输出示例。

docker volume create 输出

docker volume create 输出

使用此命令从 Docker Hub 搜索镜像,然后将其作为容器在你的机器上运行。它允许你在不访问网站的情况下访问 Docker Hub 注册表镜像。

该命令的结构如下: Docker search。你可以指定要搜索的镜像名称,也可以创建一个过滤器。

下面是以下查询输出的示例:

docker search --filter is-official=true --filter stars=500 mysql

docker search 输出

docker search 输出

8. docker push

通过 docker push 命令,你可以在 Docker Hub 注册表或私有资源库中共享你的镜像。

该命令的结构如下:

docker push [OPTIONS] NAME[:TAG]

[OPTIONS] 允许你设置 -disable-content-trust (禁用内容信任)。

默认情况下,该值为 true,并非必须包含。

NAME[:TAG] 要求使用注册表名称、版本库和图片标签。

下面是一个 docker push 输出的示例。

docker push 输出

docker push 输出

9. docker pull

该命令从私有或公共注册库中的存储库下载 Docker 镜像。

该命令是这样运行的:

docker pull [OPTIONS] NAME[:TAG|@DIGEST]

只要必须创建容器化应用程序,该命令就能让你使用现有镜像,而不是创建新镜像。

下面的示例显示了 docker pull 命令的输出结果:

docker pull 输出

docker pull 输出

10. docker ps

默认情况下,该命令会显示所有正在运行的容器列表。不过,你可以添加一个标记,根据磁盘使用大小、链接容器和标签等属性列出容器。

该命令的结构如下:

docker ps [OPTIONS]

其参数包括:

  • -a 显示正在运行和已退出的容器列表
  • -s 显示每个容器的磁盘大小和虚拟大小

您可以像这样将两者结合使用:

docker ps -as

下面是一个 docker ps 命令输出的示例。

 docker ps 命令的部分输出

 docker ps 命令的部分输出

11. docker tag

使用这个标签可以为你的镜像添加元数据,比如版本。标签通常是在构建镜像时创建的,但  docker tag 命令允许你稍后添加标签,本质上是为目标镜像创建一个别名。

该命令的结构如下:

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

在下面的示例中,我们列出了名称为 “redis” 的图片。用版本号(”2.0″)标记图片后,新的别名和最初标记的图片就会出现在列表中。

docker tag 输出

docker tag 输出

12. docker rename

使用此命令重命名容器。如果您有多个容器,并希望根据用途对它们进行区分,那么这条命令就非常有用。

该命令的结构如下:

docker rename [OLD_NAME] [NEW_NAME]

下面是执行  docker rename 命令前后的输出示例。

docker rename 输出

docker rename 输出

13. docker commit

此命令允许您在更改容器文件后创建新映像。这一点很重要,因为它可以让您使用交互式 shell 调试容器。

该命令的结构如下:

docker commit [CONTAINER_ID] [name-of-new-image]

下面是一个示例和  docker commit 的输出结果。

docker commit 输出

docker commit 输出

14. docker network

这是一个网络管理命令,可让您通过连接服务和容器创建功能强大的应用程序。

该命令的结构如下:

docker network [OPTIONS]

其参数包括:

  • connect 用于将容器连接到网络
  • create 用于构建新网络
  • disconnect 用于将运行中的容器从网络中断开
  • rm 用于删除单个或多个网络

以下是  docker network create 的输出结果。

docker network create 输出

docker network create 输出

15. docker history

该命令提供指定图像的历史记录,帮助您了解图像的创建过程并显示图像大小。

该命令的结构如下:

docker history [IMAGE]

下面,我们看到了与图像 redis:latest 相关的历史记录。

docker history 输出

docker history 输出

16. docker update

使用该命令可以更新容器的配置。它有助于防止容器消耗过多的 Docker 主机资源。该命令的格式为:

docker update [OPTIONS] [CONTAINER]

其部分选项包括:

  • --restart 更新容器重启策略
  • --memory 设置容器的内存限制
  • --cpus 设置分配的CPU数量

下面是一个 docker update 命令的输出示例。

docker update 输出

docker update 输出

17. docker plugin install

通过该命令可以管理插件。它非常重要,因为它可以在不改变 Docker 主机配置的情况下添加新功能。

docker plugin 参数包括:

  • create 用于创建新插件
  • enable 用于启用已安装的插件
  • install 用于安装新插件
  • rm 用于删除单个或多个插件
  • ls 用于显示插件列表

下面,我们使用 docker plugin install 将一个插件添加到我们的环境中。然后,我们使用  docker plugin ls  来显示它的状态。

docker plugin ls 输出

docker plugin ls 输出

18. docker container

该命令允许你管理容器。你可以用它来执行创建、杀死和删除容器等操作。

docker container 选项包括

  • create 用于创建容器
  • commit 用于在对容器进行更改后创建新映像
  • exec 用于在运行中的容器内执行命令
  • kill 用于停止正在运行的容器
  • ls 用于显示 Docker 主机内的容器列表
  • restart 用于重新启动容器
  • run 用于从映像创建容器并运行它
  • rm 用于从 Docker 主机中移除容器

下面是一个  docker container 命令输出的示例。

docker container restart 输出

docker container restart 输出

19. docker logs

该命令从容器中检索日志。它能让人深入了解容器的运行情况,这在调试时非常重要。

下面是一个 docker logs 命令输出的示例。

docker logs 输出

docker logs 输出

20. docker swarm

该命令有助于管理 Docker 星群–一组运行 Docker 并配置为在集群中协同工作的机器(虚拟机或物理机)。使用该命令可以轻松建立一个群集,并享受其带来的好处。

下面是一些 docker swarm 选项:

  • init 用于启动一个群集
  • join 用于加入一个群集
  • leave 用于退出群集
  • update 用于更新群集

下面是一个例子和一个 docker swarm init 命令的输出。

docker swarm init 输出

docker swarm init 输出

小结

Docker 是构建和管理容器化应用程序的有效工具。其 CLI 命令简单易懂,即使是复杂的应用程序,创建和操作起来也更加容易。

掌握以上 20 条命令可以加快容器化应用程序的开发速度。

评论留言