面向开发人员的 20 个 Docker 命令用例

2025-05-24

面向开发人员的 20 个 Docker 命令用例

技术只有在知道如何使用时才会最有效;使用 Docker 时务必牢记这一点。首次采用 Docker 的团队通常会听从 DevOps 的建议。然而,Devops 并不总是能够解释清楚新团队应该如何使用 Docker,而不会危及现有系统的利益。

这里提供了开发人员使用特定命令的案例、功能说明以及演示。在公司采用 Docker 的过程中,可以将其提供给开发团队,以便他们提前解答疑问。

docker build

docker build --rm -t docker-examples:latest .
Enter fullscreen mode Exit fullscreen mode

用例:您没有 docker-compose 文件,只有一个 dockerfile。您想运行服务,但首先必须构建它。

详细信息:从 dockerfile 构建镜像。
--rm用于在成功构建后删除中间容器。如果容器列表中没有此选项,则构建后您将看到类似以下内容:标记您构建的镜像,否则很难一眼看出其中包含的内容。

-t

VS Code 的快捷方式

docker build --rm -t --no-cache docker-examples:latest .
Enter fullscreen mode Exit fullscreen mode

用例:您没有指定依赖包版本并想要更新到最新版本,但您没有更改 dockerfile 并且 Docker 不断使用缓存层。

详细信息:强制 Docker 从头开始​​重建图像。

docker 运行

docker run -d -p 4000:3000 docker-examples:latest
Enter fullscreen mode Exit fullscreen mode


用例:您构建了一个 Docker 镜像并想要运行它。容器内的应用程序使用 3000 端口,但您想在本地计算机上使用 4000 端口。

详细信息:
-d在后台运行容器,并打印容器ID。
-p将容器端口发布到本地机器端口host_port:docker_port

VS Code 的快捷方式

docker run docker-examples:latest
Enter fullscreen mode Exit fullscreen mode

用例:你想运行 Docker 镜像并在终端中查看/控制已启动的进程。同时按下 Ctrl+C 也可以退出容器。

docker run -t -i docker-examples:latest node
Enter fullscreen mode Exit fullscreen mode


用例:您希望在容器内运行特定的命令/工具,使用它,然后运行容器的新实例。例如,如果您想访问 node.js 控制台并执行某些操作。另请参阅docker exec已启动容器的说明。

docker stop

docker stop container_name
Enter fullscreen mode Exit fullscreen mode

用例:您需要停止已启动的容器。

详细信息:您可以使用“docker ps -a”命令找到容器名称。

VS Code 的快捷方式

docker stop $(docker ps -a -q)
Enter fullscreen mode Exit fullscreen mode

示例:停止所有容器

docker ps

docker ps -a
Enter fullscreen mode Exit fullscreen mode

用例:查看容器列表,找到需要停止的容器名称。您还可以使用它来查看容器的状态和公开的端口。

VS Code 的快捷方式

docker 日志

docker logs -f container_name
Enter fullscreen mode Exit fullscreen mode

用例:您的服务在启动时崩溃,您想了解原因。您可能还想持续关注服务的日志。

详细信息:监视特定容器的日志;这适用于正在运行和已停止的容器。
-f打开以下日志输出。

VS Code 的快捷方式

docker kill

docker kill $(docker ps -q)
Enter fullscreen mode Exit fullscreen mode

用例:您对 Docker 感到失望并想阅读与其相关的所有内容。

详细信息:终止所有正在运行的容器。

docker rm

docker rm $(docker ps -a -q)
Enter fullscreen mode Exit fullscreen mode

用例:您的容器列表很混乱,您想整理一下。

详细信息:删除所有已停止的容器

docker系统

docker system prune
Enter fullscreen mode Exit fullscreen mode

用例:您想摆脱未使用的东西。

详细信息:删除所有未使用的容器、网络、图像(悬空和未引用)以及可选的卷。

VS Code 的快捷方式

docker rmi

docker rmi $(docker images -q)
Enter fullscreen mode Exit fullscreen mode

用例:您的磁盘需要更多空间。

详细信息:删除所有图像

docker exec

docker exec -it container_name /bin/sh
Enter fullscreen mode Exit fullscreen mode

用例:一个容器在执行过程中抛出了“get”请求到 example.com 的连接超时错误。您可以连接到该容器并运行 curl/ping 操作。

详细信息:在容器内运行特定的命令/工具,并允许您在容器内使用它。这对于调试和了解 Docker 容器内部的情况非常有用。

docker-compose up

docker-compose up
Enter fullscreen mode Exit fullscreen mode

用例:您有一个包含一些服务的 docker-compose 文件,并且您想要构建并运行它们并查看它们的输出。

docker-compose up -d
Enter fullscreen mode Exit fullscreen mode

用例:您想在后台构建和运行所有服务,然后查看它们的状态。

VS Code 的快捷方式

docker-compose up -d example-service-1
Enter fullscreen mode Exit fullscreen mode

用例:您想要运行特定的服务(名称与 docker-compose 文件中的名称相同),以便所有端口和卷都将按照该服务的 docker-compose 文件中声明的方式使用。

docker-compose down

docker-compose down
Enter fullscreen mode Exit fullscreen mode

用例:您需要停止 docker-compose 文件中声明的所有服务。这将停止容器并删除每个容器的网络、卷以及通过 ip 创建的镜像。当您想从头开始时,这很有用。

docker-compose 运行

docker-compose run example_app rails db:migrate
Enter fullscreen mode Exit fullscreen mode

用例:您需要运行服务提供的特定任务,例如迁移或测试。您可以使用与 docker run 类似的方式执行此操作,但您可以在 docker-compose 文件中按服务名称运行该任务。请注意,当您使用“run”端口时,如果不使用 --service-ports 参数,docker-compose 中的声明将无法发布。

docker-compose exec

docker-compose exec example_app node
Enter fullscreen mode Exit fullscreen mode

用例:您需要访问已启动的容器并执行某些操作,类似于 docker exec。区别在于您可以通过服务名称进行访问。这适用于调试、测试网络以及检查 Docker 容器内是否存在所有数据。

docker-compose日志

docker-compose logs -f container_name
Enter fullscreen mode Exit fullscreen mode

用例:您的服务在启动时崩溃,您想知道原因。

详细信息:监视特定容器的日志,包括正在运行和已停止的容器。此处请勿使用 docker logs 命令,而是使用服务名称而不是容器名称。
-f启用以下选项以进行日志输出。

docker-compose 停止

docker-compose stop example_app 
Enter fullscreen mode Exit fullscreen mode

用例:您想通过服务名称或容器名称停止容器。

docker-compose 重启

docker-compose restart example_app 
Enter fullscreen mode Exit fullscreen mode

用例:您想使用服务名称或容器名称重新启动容器。

想要了解有关 Docker 的更多信息吗?

我之前的文章将帮助您更好地理解 Docker:

更多文章即将发布,请在 Twitter 上订阅我@alex_barashkovDev.to

文章来源:https://dev.to/alex_barashkov/20-docker-commands-use-cases-for-developers-2d9g
PREV
如何在 Docker 容器中调试 Node.js
NEXT
CSS 结构编写易于阅读且每个人都能理解的 CSS