Docker Compose 是 Docker 官方编排项目,用于快速的部署应用。通过 DockerFile 可以快速生成一个容器,如果要多个容器配合使用,那么就可以通过该编排工具完成。
简介
通过一个单独的 docker-compose.yml
模板文件定义一组相关联的应用容器作为一个项目,其中有两个比较重要的概念:
- 服务 Service,一个应用容器,可以包括若干运行相同镜像的容器实例。
- 项目 Project,由一组关联的应用容器组成的一个完整业务单元,在配置文件中定义。
Compose 最开始由 Python 编写,后来应该是通过 GoLang 进行了重写,通过调用 Docker 服务提供的 API 来对容器进行管理。
安装
在 V2 版本中可以作为 Docker 的插件或者单独使用。
----- 可以直接根据OS安装插件
# apt-get install docker-compose-plugin
# yum install docker-compose-plugin
也可以从 Github Releases 下载相关的二进制,保存在 docker 插件所在目录,其中用户级别在 ~/.docker/cli-plugins
,系统级为 /usr/local/lib/docker/cli-plugins
。
示例
这里使用的是 Dockerfile 简介 中的示例镜像,然后创建 docker-compose.yml
文件,内容如下。
version: '3'
services:
web:
build: . # 可以通过Dockerfile构建
ports: .
- "8000:5000" # 端口映射 Host:Container,也可以指定IP地址
foobar:
image: foobar:latest # 指定镜像
container_name: foobar # 容器名
restart: always # 退出后立即重启
volumes: # 配置数据卷,Host:Container:ro
- /opt/foobar/data:/usr/foobar/data:rw
environment: # 指定环境变量
- TZ=Asia/Shanghai
ports:
- "127.0.0.1:3030:2000"
最后,通过 docker-compose up
命令启动即可,可以通过 -f
参数指定文件。
常用命令
----- 默认从当前目录读取compose.yaml文件启动
docker compose up -d -f compose.yaml
----- 连接到某个服务
docker compose exec -it foobar /bin/sh
----- 查看某个服务的日志
docker compose logs -f foobar
参考
- Compose Reference 官方的参考文档。