1、简介:

  • Compose 是用于定义和运行多容器 Docker 应用程序的工具,负责实现对 Docker 容器集群的快速编排。 通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。拥有Compose文件后,您可以使用一个命令创建和启动应用程序:docker-compose up
  • 我们知道使用一个 Dockerfile 模板文件,可以让用户很方便的定 义一个单独的应用容器。然而,在日常工作中,经常会碰到需要多个容器相互配合来完成某 项任务的情况。例如要实现一个 Web 项目,除了 Web 服务容器本身,往往还需要再加上后 端的数据库服务容器,甚至还包括负载均衡容器等。Compose 恰好满足了这样的需求。它允许用户通过一个单独的 docker-compose.yml

使用Docker Compose基本上是一个三步过程:

  1. 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版本的对应关系,高版本可向下兼容

 

docker java容器调用python代码 docker-compose java_docker

 2、services 编写服务规则:https://docs.docker.com/compose/compose-file/compose-file-v2/