compose是docker公司推出的一个工具软件,可以管理多个docker容器组成一个应用,你需要定义一个yaml格式的配置文件docker-compose.yml,写好多个容器之间的调用关系。然后只要一个命令,就能同时启动/关闭这些容器。
docker-compose是docker官方的开源项目,负责实现对docker容器集群的快速编排。
安装:
第一:docker-compose和docker版本需要匹配:
Compose file version 3 reference | Docker Documentation
第二步:下载;下载对应操作系统版本的compose
Install Docker Compose | Docker Documentation
第三布:安装
1.下载docker-compose到/usr/local/bin目录下
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
2.赋予docker-compose执行权限
sudo chmod +x /usr/local/bin/docker-compose
3. 测试
docker-compose --version
卸载:
(使用curl安装):
sudo rm /usr/local/bin/docker-compose
(使用pip安装):
pip uninstall docker-compose
二、使用
例子(lnmp)
version: "3"
networks:
lnmp:
volumes:
lnmp:
services:
mysql:
hostname: mysql
container_name: mysql57
image: mysql:5.7
volumes:
- /usr/local/soft/mysql/data:/var/lib/mysql
- /usr/local/soft/mysql/conf:/etc/mysql
- /usr/local/soft/mysql/log:/var/log/mysql
restart: always
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: '123456'
TZ: Asia/Shanghai
networks:
- lnmp
command: --default-authentication-plugin=mysql_native_password #解决无法访问
php:
hostname: php
container_name: php7.4
build: ./php
depends_on:
- mysql
restart: always
volumes:
- /usr/local/soft/nginx/html:/var/www/html
- /usr/local/soft/php/conf:/usr/local/etc
links:
- mysql:mysql
ports:
- "9000:9000"
networks:
- lnmp
nginx:
hostname: nginx
restart: always
container_name: nginx_php
image: nginx:stable
ports:
- "80:80"
- "443:443"
- "88:88"
- "99:99"
- "8888:8888"
- "999:999"
- "777:777"
links:
- "php:php"
depends_on:
- php
volumes:
- /usr/local/soft/nginx/conf:/etc/nginx
- /usr/local/soft/nginx/log:/var/log/nginx
- /usr/local/soft/nginx/html:/usr/share/nginx/html
networks:
- lnmp
常用操作
1.config验证 Compose 文件格式是否正确,若正确则显示配置,若格式错误显示错误原因。如:
docker-compose -f xxx.yml config
此命令不会执行真正的操作,而是显示 docker-compose 程序解析到的配置文件内容
2.images列出 Compose 文件中包含的镜像。如
docker-compose -f xxx.yml images
3.ps列出项目中目前的所有容器。如
docker-compose -f xxx.yml ps
4.build构建(重新构建)项目中的服务容器。如:
docker-compose -f xxx.yml build
一般搭配自定义镜像,比如编写的Dockfile,功能类似于docker build
5.up该命令十分强大(重点掌握),它将尝试自动完成包括构建镜像,(重新)创建服务,启动服务,并关联服务相关容器的一系列操作。如
docker-compose -f xxx.yml up
默认情况,docker-compose up 启动的容器都在前台,控制台将会同时打印所有容器的输出信息,可以很方便进行调试



