使用 Docker Compose
Docker Compose 是 Docker 官方编排(Orchestration)项目之一,负责快速的部署分布式应用。
本文将介绍如何启用「Docker 容器」功能的开发机安装 Docker Compose。
手动安装 Docker Compose V2
注意
手动安装的 Docker Compose 需要手动管理升级。
创建插件目录。
shellmkdir -p /usr/local/lib/docker/cli-plugins下载并安装 Compose CLI 插件:
shell# 从 Github 下载 Docker Compose,以下命令已使用学术加速 # 如需安装不同版本,请将 v2.30.3 替换为您想要使用的版本 curl -SL https://ghfast.top/https://github.com/docker/compose/releases/download/v2.30.3/docker-compose-linux-x86_64 -o /usr/local/lib/docker/cli-plugins/docker-compose此命令从 Compose 发布仓库下载指定版本,并将 Compose 安装到当前用户的
/usr/local/lib/docker/cli-plugins目录下。为二进制文件添加可执行权限:
shellchmod +x /usr/local/lib/docker/cli-plugins/docker-compose验证安装是否成功:
shelldocker compose version预期输出:
Docker Compose version v2.30.3
常见问题
为什么执行 Docker Compose 直接报错?
如果您直接执行开源项目或您既有项目中的 Compose 文件,可能会无法运行。这是因为开发机的「Docker 容器」功能有一定限制,例如容器无法以 --privileged 模式运行。
- 了解 Docker 容器功能限制。
- 检查并修改项目中的 Compose 文件,确保满足要求。
在 Compose 中如何从容器访问主机(开发机)? host.docker.internal 可用吗?
重要
在本环境中,Compose 场景同样不能使用 host.docker.internal 来访问主机。这一别名主要由 Docker Desktop(Mac/Windows)提供,Linux 原生 Docker/K8s 环境默认不内置。
可选方案:
使用主机网络(如策略允许):
yamlservices: app: network_mode: "host"通过 extra_hosts 显式添加主机名与 IP(推荐先导出环境变量):
bashexport HOSTNAME=$(hostname) export HOST_IP=$(hostname -i)docker-compose.yml:
yamlservices: app: extra_hosts: - "${HOSTNAME}:${HOST_IP}"容器间互访(service→service):优先使用“自定义网络 + 服务名/别名”。
更多细节与命令示例,参见「操作容器 · 从容器内访问开发机上的服务」。