Compose简介

- Docker
Compose是一个用来定义和运行复杂应用的Docker工具。一个使用Docker容器的应用,通常由多个容器组成。使用Docker
Compose不再需要使用shell脚本来启动容器。

  • Compose
    通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器,非常适合组合使用多个容器进行开发的场景。
  • Docker Compose 项目是Docker官方的开源项目,使用python语言编写,负责实现对Docker容器集群的快速编排.
    Docker Compose 使用的三个步骤为
  • 使用 Dockerfile 文件定义应用的环境
  • 使用docker-compose.yml 文件定义构成应用程序的服务,这样它们可以在隔离环境中一起运行;
  • 最后执行 docker-compose up 命令来创建并启动所有服务

Compose 安装

(1)下载

官方文档:https://docs.docker.com/compose/install/

  • 您可以在macOS,windows和Linux上运行Compose.本文演示基于Linux环境的安装.我们可以使用curl命令从Github下载它的二进制文件.
 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

因为Docker-Compose存放在Github,可能不太稳定,我们可以通过执行下面命令,高速安装Compose,该加速通道由DaoCloud提供: http://get.daocloud.io/#install-compose

curl -L https://get.daocloud.io/docker/compose/releases/download/v2.0.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

你可以通过修改URL中的版本,可以自定义您所需的版本文件

(2)授权

chmod +x /usr/local/bin/docker-compose

(3)测试结果

docker-compose --version

docker-compose version 1.13.0, build 1719ceb

(4)案例

vim docker-compose.yml

 描述 compose 文件的版本信息
version: "3.2"
services:
 nginx: #服务名称
   image: nginx #创建容器时所需的镜像
   container_name: my1nginx #容器名称,默认为"工程名称-服务条目名称-序号"
   ports: #宿主机与容器的端口映射关系
      - "8081:80" # 左边宿主机端口:右边容器端口
   networks: #配置连接的网络.引用顶级 networks 下的条目
     - nginx-net
networks:
  nginx-net: #一个具体网络的条目名称
    name: nginx-net # 网络名称
    driver: bridge # 网络模式

执行结果
在这里插入图片描述
(5)docker-compose部署redis集群

这里接上之前docker部署redis集群

https://blog.csdn.net/weixin_51788903/article/details/120992908

扫描二维码关注公众号,回复: 13399825 查看本文章
for port in `seq 6371 6373`; do mkdir -p ${port}/conf && PORT=${port} envsubst < redis-cluster.tmpl > ${port}/conf/redis.conf && mkdir -p ${port}/data; done

(6)编写docker-compose.yml文件

在当前目录下面/usr/local/docker-redis/redis-cluster

vim docker-compose.yml

version: "3.2"
services:
  redis-6374:
    image: redis
    container_name: redis-6374
    restart: always
    network_mode: "host"
    volumes:
      - /usr/local/docker-redis/redis-cluster/6374/conf/redis.conf:/usr/local/etc/redis/redis.conf
      - /usr/local/docker-redis/redis-cluster/6374/data:/data
    command: redis-server /usr/local/etc/redis/redis.conf

  redis-6375:
    image: redis
    container_name: redis-6375
    restart: always
    network_mode: "host"
    volumes:
      - /usr/local/docker-redis/redis-cluster/6375/conf/redis.conf:/usr/local/etc/redis/redis.conf
      - /usr/local/docker-redis/redis-cluster/6375/data:/data
    command: redis-server /usr/local/etc/redis/redis.conf

  redis-6376:
    image: redis
    container_name: redis-6376
    restart: always
    network_mode: "host"
    volumes:
      - /usr/local/docker-redis/redis-cluster/6376/conf/redis.conf:/usr/local/etc/redis/redis.conf
      - /usr/local/docker-redis/redis-cluster/6376/data:/data

后面接上第五点

https://blog.csdn.net/weixin_51788903/article/details/120992908

(7)移除redis集群

作用:直接移除

docker-compose down

[+] Running 3/3
 ⠿ Container redis-6376  Removed                                                                                                                                                          2.0s
 ⠿ Container redis-6374  Removed                                                                                                                                                          2.0s
 ⠿ Container redis-6375  Removed    

综上是对docker-compose集群redis的操作

猜你喜欢

转载自blog.csdn.net/weixin_51788903/article/details/121001866