Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。自 Docker 1.13 版本起,Docker Compose 引入了 V2 版本来支持更为复杂的服务编排,并且提供了更多的命令行选项。这些选项使得用户可以更好地定制化他们的部署过程。
docker compose up
启动服务定义的容器并使其进入运行状态。
-d
:在后台运行容器--force-recreate
:无论镜像是否更改,都强制重新创建所有服务--no-build
:即使有更新的 Dockerfile 也不构建新镜像docker compose down
停止并拆卸由 Compose 配置文件定义的所有服务。
-v
:删除容器、网络和卷(保留数据卷)使用 --env-file
和 --env-file-extras
来加载环境变量文件。
--env-file
读取一个或多个 .env
文件,将其内容添加到环境变量中。
docker compose --env-file .env.production up
--env-file-extras
读取额外的 .env
文件,并覆盖之前文件中的环境变量设置。
docker compose --env-file .env.default --env-file-extras .env.local up
通过 -p
参数为项目指定一个自定义名称。
--project-name
设置 Compose 所引用的项目名称,默认值是当前目录名。
docker compose --project-name myapp up
控制构建过程,以优化构建时间并确保服务容器的一致性。
-b
和 --build
仅构建未更新的服务镜像。
docker compose -b up
--cache-from
指定一个或多个已有镜像来用于加速镜像拉取和构建过程。
docker compose --cache-from my-existing-image:latest up
允许用户运行自定义命令,以便执行未在 Dockerfile 中定义的操作。
-e
和 --env
为服务添加或覆盖环境变量设置。
docker compose -e MY_VAR=myvalue up
--service
指定要执行特定操作的服务。
docker compose --service web restart
通过调整一些参数,可以增强 Compose 的运行时性能。
--no-ansi
和 --ansi
控制是否显示彩色输出(对于日志和命令行提示)。
docker compose --no-ansi logs
--log-level
或 -l
设置 Docker 服务的日志级别。
docker compose -l debug up
自定义容器间的网络连接。
--network
指定一个已存在的 Docker 网络名称或创建一个新的网络。默认情况下,Docker Compose 自动创建并使用名为 <项目名>_default
的桥接网络。
docker compose --network my-network up
通过定义 depends_on
关系来控制容器的启动顺序。
--scale
指定运行的服务实例数量,以满足负载均衡需求。
docker compose --scale web=3 up
--timeout
自定义等待所有服务就绪的时间(单位为秒)。
docker compose --timeout 120 up
通过上述命令行选项,用户能够更加灵活地管理和部署 Docker Compose 应用程序。无论是简化构建过程、优化性能还是定制化启动顺序,Docker Compose V2 的这些增强特性都为开发者提供了强大的工具集。
为了进一步掌握这些命令及其应用场景,建议阅读官方文档,并通过实际操作来深入理解它们的用法。