单机编排工具Docker Compose
a.docker-compose简介
宿主机启动较多的容器时,都是手动操作会觉得比较麻烦而且容易出错,此时推荐使用docker 单机编排工具 docker-compose
docker-compose 是 docker 容器的一种单机编排服务,docker-compose 是一个管理多个容器的工具,比如: 可以解决容器之间的依赖关系,并且可以替代docker命令对容器进行创建、启动和停止等手工的操作
docker命令相当于ansible命令,那么docker compose文件,就相当于ansible-playbook的yaml文件
docker-compose 项目是Docker 官方的开源项目,负责实现对Docker 容器集群的快速编排,docker-compose 将所管理的容器分为三层,分别是工程(project),服务(service)以及容器(container)
github地址: https://github.com/docker/compose
官方地址: https://docs.docker.com/compose/
b.docker-compose在线安装
此方法安装的版本较旧,不推荐
#ubuntu安装,此为默认版本
[root@ubuntu1804 ~]#apt -y install docker-compose
[root@ubuntu1804 ~]#docker-compose --version
#CentOS7安装,依赖EPEL源
[root@centos7 ~]#yum -y install docker-compose
[root@centos7 ~]#docker-compose --version
c.docker-compose二进制安装
直接从github下载安装对应版本
参看说明: https://github.com/docker/compose/releases
# 直接下载比较慢,可使用国内代理站点进行下载,代理地址:https://ghproxy.com 在下载的资源前面加上这个地址即可
[root@centos7 ~]# wget https://ghproxy.com/https://github.com/docker/compose/releases/download/v2.19.0/docker-compose-linux-x86_64
[root@centos7 ~]# mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
[root@centos7 ~]# chmod +x /usr/local/bin/docker-compose
[root@centos7 ~]# docker-compose --help
# 或者使用curl命令下载
[root@centos7 ~]# curl -L https://ghproxy.com/https://github.com/docker/compose/releases/download/v2.19.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
d.docker-compose格式
1、docker-compose命令格式
docker-compose --help
Define and run multi-container applications with Docker.
Usage:
docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...]
docker-compose -h|--help
#选项说明:
-f,–file FILE #指定Compose 模板文件,默认为docker-compose.yml
-p,–project-name NAME #指定项目名称,默认将使用当前所在目录名称作为项目名。
--verbose #显示更多输出信息
--log-level LEVEL #定义日志级别 (DEBUG, INFO, WARNING, ERROR, CRITICAL)
--no-ansi #不显示ANSI 控制字符
-v, --version #显示版本
#以下为命令选项,需要在docker-compose.yml|yaml 文件所在在目录里执行
config -q #查看当前配置,没有错误不输出任何信息
up #创建并启动容器
build #构建镜像
bundle #从当前docker compose 文件生成一个以<当前目录>为名称的json格式的Docker Bundle 备
份文件
create #创建服务
down #停止和删除所有容器、网络、镜像和卷
events #从容器接收实时事件,可以指定json 日志格式
exec #进入指定容器进行操作
help #显示帮助细信息
images #显示镜像信息
kill #强制终止运行中的容器
logs #查看容器的日志
pause #暂停服务
port #查看端口
ps #列出容器
pull #重新拉取镜像,镜像发生变化后,需要重新拉取镜像
push #上传镜像
restart #重启服务
rm #删除已经停止的服务
run #一次性运行容器
scale #设置指定服务运行的容器个数
start #启动服务
stop #停止服务
top #显示容器运行状态
unpause #取消暂定
2、docker-compose文件格式
官方文档: https://docs.docker.com/compose/compose-file/
docker compose 文件是一个yaml格式的文件,所以注意行首的缩进很严格
默认docker-compose 命令会调用当前目录下的docker-compose.yml的文件,因此一般执行docker-compose命令前先进入docker-compose.yml文件所在目录
e.docker-compose使用
注意: 使用Docker compose之前,先要安装docker
docker compose 文件可在任意目录,创建文件名为docker-compose.yml 配置文件
wordpress示例:
[root@centos7 ~]# vim docker-compose.yml
version: '3'
services:
db:
image: mysql:8.0.29-oracle
container_name: db
restart: unless-stopped
environment:
- MYSQL_DATABASE=wordpress
- MYSQL_ROOT_PASSWORD=123456
- MYSQL_USER=wordpress
- MYSQL_PASSWORD=123456
volumes:
- dbdata:/var/lib/mysql
networks:
- wordpress-network
wordpress:
depends_on:
- db
image: wordpress:php7.4-apache
container_name: wordpress
restart: unless-stopped
ports:
- "80:80"
environment:
- WORDPRESS_DB_HOST=db:3306
- WORDPRESS_DB_USER=wordpress
- WORDPRESS_DB_PASSWORD=123456
- WORDPRESS_DB_NAME=wordpress
volumes:
- wordpress:/var/www/html
networks:
- wordpress-network
volumes:
wordpress:
dbdata:
networks:
wordpress-network:
driver: bridge
ipam:
config:
- subnet: 172.30.0.0/16
[root@centos7 ~]# docker-compose up -d
mindoc示例:
version: "3"
services:
mindoc:
image: registry.cn-hangzhou.aliyuncs.com/mindoc-org/mindoc:v2.1
container_name: mindoc
privileged: false
restart: always
ports:
- 8181:8181
volumes:
- /app/mindoc/data/conf://mindoc/conf
- /app/mindoc/data/static://mindoc/static
- /app/mindoc/data/views://mindoc/views
- /app/mindoc/data/uploads://mindoc/uploads
- /app/mindoc/data/runtime://mindoc/runtime
- /app/mindoc/data/database://mindoc/database
environment:
- MINDOC_RUN_MODE=prod
- MINDOC_DB_ADAPTER=sqlite3
- MINDOC_DB_DATABASE=./database/mindoc.db
- MINDOC_CACHE=true
- MINDOC_CACHE_PROVIDER=file
- MINDOC_ENABLE_EXPORT=false
- MINDOC_BASE_URL=
- MINDOC_CDN_IMG_URL=
- MINDOC_CDN_CSS_URL=
- MINDOC_CDN_JS_URL=
dns:
- 223.5.5.5
- 223.6.6.6
[root@centos7 ~]# docker-compose up -d
最后编辑:于浩 更新时间:2025-06-10 18:08