1、简介:
- Compose 是用于定义和运行多容器 Docker 应用程序的工具,负责实现对 Docker 容器集群的快速编排。 通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。拥有Compose文件后,您可以使用一个命令创建和启动应用程序:
docker-compose up
。 - 我们知道使用一个 Dockerfile 模板文件,可以让用户很方便的定 义一个单独的应用容器。然而,在日常工作中,经常会碰到需要多个容器相互配合来完成某 项任务的情况。例如要实现一个 Web 项目,除了 Web 服务容器本身,往往还需要再加上后 端的数据库服务容器,甚至还包括负载均衡容器等。Compose 恰好满足了这样的需求。它允许用户通过一个单独的
docker-compose.yml
使用Docker Compose基本上是一个三步过程:
- Compose 使用的三个步骤:
- 使用 Dockerfile 定义应用程序的环境。
- 使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。
- 最后,执行 docker-compose up 命令来启动并运行整个应用程序。
2、安装Compose(Linux)
官方:https://docs.docker.com/compose/install/
官网安装太慢可参考如下方式:
方式一:
下载二进制文件上传安装
下载 docker-compose
百度网盘下载
链接:https://pan.baidu.com/s/1MMob-u3jsR5OK8u4r1uZDA
提取码:2336
或者 : github下载:https://github.com/docker/compose/releases/download/1.24.1/docker-compose-Linux-x86_64
安装:
docker-compose --version
方式二:
linux直接换源安装
curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
要安装其他版本的Compose,请替换1.25.4 为要使用的Compose版本。
将可执行权限应用于二进制文件:
sudo chmod +x /usr/local/bin/docker-compose
查看版本:
docker-compose --version
3、docker-compose 常用命令
1:创建并启动容器
docker-compose up
2:如果要在后台运行服务,则可以将-d标志
docker-compose up -d
3、查看当前正在运行什么
docker-compose ps
4、关闭容器
docker-compose stop
关闭并移除容器
docker-compose down
关闭并移除容器并删除容器清除存储
docker-compose down --volumes
5、启动容器
docker-compose start
6、查看日志
docker-compose logs
4、docker-compose 的编写规则
version: "3.9" # 与当前docker-compose的版本,与docker版本要对应
services: # 服务
redis: # eg: redis 服务,下面是redis服务的配置信息
image: redis:alpine
ports:
- "6379"
networks:
- frontend
deploy:
replicas: 2
update_config:
parallelism: 2
delay: 10s
restart_policy:
condition: on-failure
db: # 数据库服务
image: postgres:9.4
volumes:
- db-data:/var/lib/postgresql/data
networks:
- backend
deploy:
placement:
max_replicas_per_node: 1
constraints:
- "node.role==manager"
#其他配置信息
networks:
frontend:
backend:
volumes:
db-data:
1、version : docker-compose 与 docker版本的对应关系,高版本可向下兼容
2、services 编写服务规则:https://docs.docker.com/compose/compose-file/compose-file-v2/