本章主要介绍Docker Compose的基础概念,以及如何编写Docker Compose文件

概念

Docker Compose是一个工具,它可以通过yml文件定义多容器的docker应用,通过一条命令就可以根据yml文件去创建或者管理多个应用

docker-compose.yml

docker-compose.yml由Services、Networks、volumes三个部分组成。
一个Services代表一个container,这个container可以从dockerhub的image来创建,也可以从本地的Dockerfile build出来的image来创建
Servides的启动类似于docker run,我们可以给其指定network和volume,所以可以给service指定network和volume的引用

services:
db:
image: postgres:9.4
volumes:
- "db-data:/var/lib/postgresql/data"
networks:
- back-tier
volumes:
db-date:
networks:
front-tier:
driver: bridge
back-tier:
driver: bridge
services:
worker:
build: ./worker
links:
- db
- redis
networks:
- back-tier
networks:
back-tier:
driver: bridge

编写一个docker-compose.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:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: wordpress
volumes:
- mysql-data:/var/lib/mysql
networks:
- my-bridge

volumes:
mysql-data:

networks:
my-bridge:
driver: bridge

docker-compose安装

#下载docker-compose到/usr/local/bin目录下
curl -L https://get.daocloud.io/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
#授予docke-compose可执行权限
chmod +x /usr/local/bin/docker-compose
#查看版本
docker-compose --version

docker-compose常用命令

#启动docker-compose.yml文件
docker-compose -f docker-compose.yml up -d
#查看正在运行的docker-compose容器
docker-compose ps
#停止docker-compose运行的容器
docker-compose stop
#停止并删除正在运行的容器
docker-compose down
#进入docker-compose中的一个容器
docker-compose exec mysql bash