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 命令是你应该最熟悉的。
- docker system
- docker context
- docker pause 和 unpause
- docker rm
- docker rmi
- docker volume
- docker search
- docker push
- docker pull
- docker ps
- docker tag
- docker rename
- docker commit
- docker network
- docker history
- docker update
- docker plugin install
- docker container
- docker logs
- docker swarm
1. docker system
docker system
命令有助于检查和管理 Docker 环境。它支持用于执行特定管理相关任务的命令行参数,包括
df
显示磁盘的使用情况prune
删除未使用的网络、容器、映像或卷info
显示系统相关信息events
实时显示系统事件日志
下面是执行 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
输出
3. docker pause 和 unpause
docker pause
命令会冻结容器的活动进程。要运行它,必须指定容器的名称,如下所示:
docker pause [CONTAINER]
下面是暂停容器后的输出示例。
docker pause
输出
docker unause
命令会恢复已暂停的容器进程。与前一条命令一样,你必须指定容器名称,如下所示:
docker unpause [CONTAINER]
下面是取消暂停容器后的输出示例。
docker unpause
输出
4. docker rm
该命令可移除容器、卷和网络。它允许根据组件的属性选择要移除的组件。例如,你可以强制移除正在运行的容器或所有指定的容器:
docker rm [CONTAINER]
移除指定名称的容器。该命令的输出截图如下。
docker rm
输出
5. docker rmi
使用该命令可以删除图像。您可以删除单个图像,也可以同时删除多个图像。您可以使用短 ID 或长 ID 来描述要删除的图像。该命令对于保持主机节点的整洁和高效非常重要。
图像删除命令使用以下结构:
docker rmi [IMAGE ID]
下面是其输出示例。
docker rmi
输出
6. docker volume
该命令允许你管理 Docker 中的卷。你可以用它来创建、移除、列出和检查卷。
docker volume
的一些参数如下:
create [OPTIONAL NAME]
创建一个新卷。你可以指定卷名,也可以让 Docker 随机生成一个卷名。ls
列出可用的卷inspect [NAME]
显示卷的详细信息。rm [NAME]
从 Docker 中删除卷。
下面是创建卷后的输出示例。
docker volume create
输出
7. docker search
使用此命令从 Docker Hub 搜索镜像,然后将其作为容器在你的机器上运行。它允许你在不访问网站的情况下访问 Docker Hub 注册表镜像。
该命令的结构如下: Docker search
。你可以指定要搜索的镜像名称,也可以创建一个过滤器。
下面是以下查询输出的示例:
docker search --filter is-official=true --filter stars=500 mysql
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
输出
9. docker pull
该命令从私有或公共注册库中的存储库下载 Docker 镜像。
该命令是这样运行的:
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
只要必须创建容器化应用程序,该命令就能让你使用现有镜像,而不是创建新镜像。
下面的示例显示了 docker pull
命令的输出结果:
docker pull
输出
10. docker ps
默认情况下,该命令会显示所有正在运行的容器列表。不过,你可以添加一个标记,根据磁盘使用大小、链接容器和标签等属性列出容器。
该命令的结构如下:
docker ps [OPTIONS]
其参数包括:
-a
显示正在运行和已退出的容器列表-s
显示每个容器的磁盘大小和虚拟大小
您可以像这样将两者结合使用:
docker ps -as
下面是一个 docker ps
命令输出的示例。
docker ps
命令的部分输出
11. docker tag
使用这个标签可以为你的镜像添加元数据,比如版本。标签通常是在构建镜像时创建的,但 docker tag
命令允许你稍后添加标签,本质上是为目标镜像创建一个别名。
该命令的结构如下:
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
在下面的示例中,我们列出了名称为 “redis” 的图片。用版本号(”2.0″)标记图片后,新的别名和最初标记的图片就会出现在列表中。
docker tag
输出
12. docker rename
使用此命令重命名容器。如果您有多个容器,并希望根据用途对它们进行区分,那么这条命令就非常有用。
该命令的结构如下:
docker rename [OLD_NAME] [NEW_NAME]
下面是执行 docker rename
命令前后的输出示例。
docker rename
输出
13. docker commit
此命令允许您在更改容器文件后创建新映像。这一点很重要,因为它可以让您使用交互式 shell 调试容器。
该命令的结构如下:
docker commit [CONTAINER_ID] [name-of-new-image]
下面是一个示例和 docker commit
的输出结果。
docker commit
输出
14. docker network
这是一个网络管理命令,可让您通过连接服务和容器创建功能强大的应用程序。
该命令的结构如下:
docker network [OPTIONS]
其参数包括:
connect
用于将容器连接到网络create
用于构建新网络disconnect
用于将运行中的容器从网络中断开rm
用于删除单个或多个网络
以下是 docker network create
的输出结果。
docker network create
输出
15. docker history
该命令提供指定图像的历史记录,帮助您了解图像的创建过程并显示图像大小。
该命令的结构如下:
docker history [IMAGE]
下面,我们看到了与图像 redis:latest
相关的历史记录。
docker history
输出
16. docker update
使用该命令可以更新容器的配置。它有助于防止容器消耗过多的 Docker 主机资源。该命令的格式为:
docker update [OPTIONS] [CONTAINER]
其部分选项包括:
--restart
更新容器重启策略--memory
设置容器的内存限制--cpus
设置分配的CPU数量
下面是一个 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
输出
18. docker container
该命令允许你管理容器。你可以用它来执行创建、杀死和删除容器等操作。
docker container
选项包括
create
用于创建容器commit
用于在对容器进行更改后创建新映像exec
用于在运行中的容器内执行命令kill
用于停止正在运行的容器ls
用于显示 Docker 主机内的容器列表restart
用于重新启动容器run
用于从映像创建容器并运行它rm
用于从 Docker 主机中移除容器
下面是一个 docker container
命令输出的示例。
docker container restart
输出
19. docker logs
该命令从容器中检索日志。它能让人深入了解容器的运行情况,这在调试时非常重要。
下面是一个 docker logs
命令输出的示例。
docker logs
输出
20. docker swarm
该命令有助于管理 Docker 星群–一组运行 Docker 并配置为在集群中协同工作的机器(虚拟机或物理机)。使用该命令可以轻松建立一个群集,并享受其带来的好处。
下面是一些 docker swarm
选项:
init
用于启动一个群集join
用于加入一个群集leave
用于退出群集update
用于更新群集
下面是一个例子和一个 docker swarm init
命令的输出。
docker swarm init
输出
小结
Docker 是构建和管理容器化应用程序的有效工具。其 CLI 命令简单易懂,即使是复杂的应用程序,创建和操作起来也更加容易。
掌握以上 20 条命令可以加快容器化应用程序的开发速度。
评论留言