通过前几节的学习,我们发现当我们在部署多个container的时候会非常的繁琐,要通过维护多个Docker Image 然后还要生成对应的container,而且每个container的配置还不一样,我们还要管理这些container(启动停止删除)作为开发者我们发现这个实在是太痛苦了,那么有没有更方便的方式管理我们的container呢?Docker Compose就出现了,对它的描述可以用下面几点。
- Docker Compose 是一个工具
- 这个工具可以通过一个yml文件定义多容器的docker应用
- 通过一条命令就可以根据yml文件的定义去创建或者管理这多个容器
下面我们就来重点学习一下,什么是yml文件,怎么去写它。。。。
首先呢,它有一个默认的名字 docker-compose.yml,内容包括三点
- Services
一个service代表一个container,这个container可以从dockerhub的image来创建,或者从本地的Dockerfile build出来的image来创建
Service的启动类似docker run, 我们可以给其指定network和volume, 所以可以给service指定network和Volume的引用,比如说下面这种就是从docker hub 拉去的镜像
services:
db:
image: postgres:9.4
volume:
_ "db-data:/var/lib/postgresql/data"
networks:
_ back-tier
下面这个就是用本地的镜像
services:
worker:
build: ./worker
link:
- db
- redis
neteork:
- back-tier
接下来给大家看一个比较完成的yml文件
version: '3'
services:
wordpress:
image: wordpress
ports:
- 8080:80
environment:
WORDPRESS_DB_HOST: mysql
WORDPRESS_DB_PASSWORD: root
networks:
- my-bridge
mysql:
image: mysql
environment: # 这个相当于我们操作的-e
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: wordpress
volumes:
- mysql-data:/var/lib/mysql
networks:
- my-bridge
volumes:
mysql-data:
networks:
my-bridge: bridge
- Networks
- Volumes
ok, 我们这一节主要带大家看一看yml文件是什么长什么样子具体的安装使用,我们会在下一节进行处理。