本章主要介绍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安装
curl -L https://get.daocloud.io/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version
|
docker-compose常用命令
docker-compose -f docker-compose.yml up -d
docker-compose ps
docker-compose stop
docker-compose down
docker-compose exec mysql bash
|