面向开发人员的 20 个 Docker 命令用例
技术只有在知道如何使用时才会最有效;使用 Docker 时务必牢记这一点。首次采用 Docker 的团队通常会听从 DevOps 的建议。然而,Devops 并不总是能够解释清楚新团队应该如何使用 Docker,而不会危及现有系统的利益。
这里提供了开发人员使用特定命令的案例、功能说明以及演示。在公司采用 Docker 的过程中,可以将其提供给开发团队,以便他们提前解答疑问。
docker build
docker build --rm -t docker-examples:latest .

用例:您没有 docker-compose 文件,只有一个 dockerfile。您想运行服务,但首先必须构建它。
详细信息:从 dockerfile 构建镜像。--rm
用于在成功构建后删除中间容器。如果容器列表中没有此选项,则构建后您将看到类似以下内容:标记您构建的镜像,否则很难一眼看出其中包含的内容。-t
docker build --rm -t --no-cache docker-examples:latest .
用例:您没有指定依赖包版本并想要更新到最新版本,但您没有更改 dockerfile 并且 Docker 不断使用缓存层。
详细信息:强制 Docker 从头开始重建图像。
docker 运行
docker run -d -p 4000:3000 docker-examples:latest

用例:您构建了一个 Docker 镜像并想要运行它。容器内的应用程序使用 3000 端口,但您想在本地计算机上使用 4000 端口。
详细信息:-d
在后台运行容器,并打印容器ID。-p
将容器端口发布到本地机器端口host_port:docker_port。
docker run docker-examples:latest

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

用例:您希望在容器内运行特定的命令/工具,使用它,然后运行容器的新实例。例如,如果您想访问 node.js 控制台并执行某些操作。另请参阅
docker exec
已启动容器的说明。
docker stop
docker stop container_name
用例:您需要停止已启动的容器。
详细信息:您可以使用“docker ps -a”命令找到容器名称。
docker stop $(docker ps -a -q)
示例:停止所有容器
docker ps
docker ps -a

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

用例:您的服务在启动时崩溃,您想了解原因。您可能还想持续关注服务的日志。
详细信息:监视特定容器的日志;这适用于正在运行和已停止的容器。-f
打开以下日志输出。
docker kill
docker kill $(docker ps -q)
用例:您对 Docker 感到失望并想阅读与其相关的所有内容。
详细信息:终止所有正在运行的容器。
docker rm
docker rm $(docker ps -a -q)
用例:您的容器列表很混乱,您想整理一下。
详细信息:删除所有已停止的容器
docker系统
docker system prune

用例:您想摆脱未使用的东西。
详细信息:删除所有未使用的容器、网络、图像(悬空和未引用)以及可选的卷。
docker rmi
docker rmi $(docker images -q)
用例:您的磁盘需要更多空间。
详细信息:删除所有图像
docker exec
docker exec -it container_name /bin/sh

用例:一个容器在执行过程中抛出了“get”请求到 example.com 的连接超时错误。您可以连接到该容器并运行 curl/ping 操作。
详细信息:在容器内运行特定的命令/工具,并允许您在容器内使用它。这对于调试和了解 Docker 容器内部的情况非常有用。
docker-compose up
docker-compose up

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

用例:您想在后台构建和运行所有服务,然后查看它们的状态。
docker-compose up -d example-service-1
用例:您想要运行特定的服务(名称与 docker-compose 文件中的名称相同),以便所有端口和卷都将按照该服务的 docker-compose 文件中声明的方式使用。
docker-compose down
docker-compose down
用例:您需要停止 docker-compose 文件中声明的所有服务。这将停止容器并删除每个容器的网络、卷以及通过 ip 创建的镜像。当您想从头开始时,这很有用。
docker-compose 运行
docker-compose run example_app rails db:migrate
用例:您需要运行服务提供的特定任务,例如迁移或测试。您可以使用与 docker run 类似的方式执行此操作,但您可以在 docker-compose 文件中按服务名称运行该任务。请注意,当您使用“run”端口时,如果不使用 --service-ports 参数,docker-compose 中的声明将无法发布。
docker-compose exec
docker-compose exec example_app node

用例:您需要访问已启动的容器并执行某些操作,类似于 docker exec。区别在于您可以通过服务名称进行访问。这适用于调试、测试网络以及检查 Docker 容器内是否存在所有数据。
docker-compose日志
docker-compose logs -f container_name
用例:您的服务在启动时崩溃,您想知道原因。
详细信息:监视特定容器的日志,包括正在运行和已停止的容器。此处请勿使用 docker logs 命令,而是使用服务名称而不是容器名称。-f
启用以下选项以进行日志输出。
docker-compose 停止
docker-compose stop example_app
用例:您想通过服务名称或容器名称停止容器。
docker-compose 重启
docker-compose restart example_app
用例:您想使用服务名称或容器名称重新启动容器。
想要了解有关 Docker 的更多信息吗?
我之前的文章将帮助您更好地理解 Docker:
更多文章即将发布,请在 Twitter 上订阅我@alex_barashkov和Dev.to
文章来源:https://dev.to/alex_barashkov/20-docker-commands-use-cases-for-developers-2d9g