Docker系列器九:docker-compose与docker-compose.yml语法
一般情况下:docker 安装wordpress,流程是:
docker run -d --name mysql -v mysql-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=wordpress mysql
docker run -d -e WORDPRESS_DB_HOST=mysql:3306 --link mysql -p 8080:80 wordpress
Docker Compose
docker Compose 代替了批处理的功能
1,docker compose是一个工具
2,这个工具可以通过一个yml文件定义多容器的docker应用
3,通过一个命令就可以柑橘yml文件的定义去创建或者管理这多个容器
docker-compose.yml三大概念
services
networks
volumes
1,一个service代表一个container,这个container可以从dockerhub的image开创建,或者从本地的dockerfile build出来的images创建
2,service 启动类似docker run ,我们可以给其他的network和volume的引用
docker Compose的安装接使用
查看docker-compose的版本
docker-compose --version
linux下面的安装:
sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
赋权:
sudo chmod +x /usr/local/bin/docker-compose
[root@docker-host home]# docker-compose --version
docker-compose version 1.22.0, build f46880fe
将编写的yml文件放到一个文件夹下面
使用docker-compose up来启动,这种方式可以看到日志
docker-compose up -d 启动起来,在后台显示
可以使用docker-compose up --help查看帮助
启动指定的docker-cmpose yml文件
docker-compose -f docker-compose up
查看docker-compose进程
docker-compose ps
但是通过docker ps -a也能看见
停止docker-compose的两个方式:
docker-compose stop 这种不会删除容器和里面的数据
docker-compose down 这种会删除容器和删除容器里面的network和volume
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 文档
https://docs.docker.com/
docker compose文档
https://docs.docker.com/ee/
docker compose版本参考文档
https://docs.docker.com/compose/compose-file/