Docker Compose
简介
Dockerfile 可以让程序在任何地方运行,例如 Web 服务、Redis、MySQL、Nginx。但如果需要启动多个容器,都需要使用 run
命令启动,这样就很麻烦。而通过 Docker Compose,可以将多个容器融合在一起,实现自动化部署。
简而言之:通过 Docker Compose 将多个容器自动化部署。
安装
前提需要安装 docker
1、下载
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 上为官方的地址 可能有些慢 下为daocloud
sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
2、授权文件权限
sudo chmod +x /usr/local/bin/docker-compose
3、测试安装结果
docker-compose --version
使用
docker-compose up
YAML 规则
Compose file version 3 reference | Docker Documentation
Compose
中有两个重要的概念:
- 服务 (
service
):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。 - 项目 (
project
):由一组关联的应用容器组成的一个完整业务单元,在docker-compose.yml
文件中定义。
下面是一个简单的 YAML 配置文件示例:
version: '3' # Compose 版本,根据 Docker 版本来匹配
services: # 服务
服务1:
# 服务配置
images:
build:
ports:
network:
environment:
depends_on:
服务2:
networks:
volumes:
在上面的示例中,我们可以看到:
version
:Compose 版本,要根据 Docker 版本来匹配。services
:服务,定义了多个应用容器。networks
:网络,可以为服务定义自己的网络。volumes
:数据卷,可以为每个服务挂载数据卷。
在每个服务定义中,我们可以配置以下内容:
image
:使用的镜像名称。build
:使用 Dockerfile 构建镜像。ports
:对外暴露的端口。network
:连接到的网络。environment
:设置的环境变量。depends_on
:定义服务之间的依赖关系。
更详细的 Compose 文件规则可以参考官方文档:Compose file version 3 reference | Docker Documentation。