Compose简介
 Compose 是用于定义和运行多容器 Docker 应用程序的工具。Docker Compose 通过一个单独的 docker-compose.yml 模板文件(YAML格式)来定义一组相关联的应用容器,帮助我们实现多个相关联的 Docker 容器的快速部署。 Compose 使用的三个步骤:- 使用 Dockerfile 定义应用程序的环境。
- 使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。
- 最后,执行 docker-compose up 命令来启动并运行整个应用程序。
Compose安装
- Linux:执行以下指令即可安装(最新版替换V后面的版本号即可)
- MacOS:Mac 的 Docker 桌面版和 Docker Toolbox 已经包括 Compose 和其他 Docker 应用程序,因此 Mac 用户不需要单独安装 Compose。
- Windows:Windows 的 Docker 桌面版和 Docker Toolbox 已经包括 Compose 和其他 Docker 应用程序,因此 Windows 用户不需要单独安装 Compose。
Compose样例
app服务使用到了node:18-alpine会执行一条 Shell 指令,并且进行了端口映射,配置了工作目录,配置了卷。web服务使用到了nginx镜像,并将容器的 80 端口,映射到宿主机的 80 端口。db服务使用了postgres镜像,并设置了一个环境变量。
Compose基本命令
使用Docker-Compose的常见命令包括:docker-compose up:启动并运行整个应用。docker-compose down:停止并移除容器、网络、卷和镜像。docker-compose build:构建或重建服务。docker-compose logs:查看服务的日志输出。 这些命令为Docker-Compose的日常使用提供了基础。
Compose文件结构
- 理解docker-compose.yml
- 基本组件
- 服务(Services):服务代表一个容器。在docker-compose.yml中,您可以定义一个或多个服务,每个服务可以使用不同的镜像。
- 网络(Networks):Docker-Compose允许您定义和使用自己的网络。
- 卷(Volumes):卷用于数据持久化和共享数据。您可以定义一个卷,并将其挂载到一个或多个容器中。
- 文件示例
- 配置项解析
- 环境变量(Environment):可以设置环境变量,为服务配置必要的参数。
- 端口映射(Ports):将容器内的端口映射到宿主机的端口,以便外部访问。
- 依赖关系(Depends On):可以指定服务启动的顺序。
Compose高级应用
- 网络配置
- 卷挂载和数据持久化 卷用于数据持久化和服务间共享数据。在Docker-Compose中,您可以定义卷并将其挂载到服务所需的位置。例如:
- 环境变量和配置文件 Docker-Compose允许您通过环境变量或.env文件来配置服务。这使得您的配置更加灵活,也更适合不同的环境。例如:
- 扩展和复用配置
- 使用Docker-Compose进行部署