官方简介
Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。
在一个 compose 里面定义的容器集合,一般是一个服务的完整运行组件集合,只是提供了 docker 容器关系声明的 “配置性”, 可以粗浅的认为相当于 Kubernates 中的一个 Pod,但是不具有弹性伸缩或故障发现和转移的能力。
使用注意
- yml文件里面的 version 需要和 docker-compose 执行版本精确到小版本上匹配。
- 要使用下载安装方式。
- 容器故障检测和资源配额等的操作,依然需要配合类似 pm2,supervisor 等的工具才行。
- 网络模式一般使用 bridge 桥接网络,这样可以组一个容器间共享子网。
- 存储卷也是普通的存储卷。
使用步骤
创建 dockerfile 文件
FROM tecadmin/ubuntu-ssh:16.04
RUN apt-get update
&& apt-get install -y apache2
COPY index.html /var/www/html/
WORKDIR /var/www/html
CMD ["apachectl", "-D", "FOREGROUND"]
EXPOSE 80
编辑 docker-compose.yml 文件
version: '3'
services:
db:
image: mysql
container_name: mysql_db
restart: always
environment:
- MYSQL_ROOT_PASSWORD="secret"
web:
image: apache
build: ./webapp
depends_on:
- db
container_name: apache_web
restart: always
ports:
- "8080:80"
以下命令运行
docker-compose build
docker-compose up -d
常用命令
docker-compose down [服务名]
拥有和 docker命令类似的命令,例如
docker-compose [ps,exec, restart,start,stop,pause,rm] [...args]
文档地址
https://docs.docker.com/compose/reference/overview/
https://yeasy.gitbook.io/docker_practice/compose/commands