Skip to content

docker-compos 容器编排

安装docker-compose

bash
#没有docker compose 命令的下载docker-compose文件并赋予执行权限 
#高版本安装docker-ce的时候默认安装docker-compose-plugin
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo apt install docker-compose
curl -L "https://github.com/docker/compose/releases/download/1.29.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /user/local/bin/docker-compose

多容器编排

yaml
name: "name"
services:
  microService:
    image: zly_docker:1.2
    container_name: springboot
    depends_on:
      - redis
      - mysql
  redis:
    image: redis:7.0.0
    networks:
      - zly_net
  mysql:
    image: mysql:5.7
    environment:
      - mkd: sofds
    volumes:
      - /app/mysql/db:/var/lib/mysql
    ports:
      - 3306:3306
    networks:
      - zly_net
    command: --default-authentication-plugin=mysql_native_password
networks:
  zly_net:

docker-compose volumes 指定卷绑定位置

yaml
version: '3'
services:
  mysql: # 服务名称
    image: mysql:8.0 # 或其它mysql版本
    container_name: mysql80 # 容器名称
    environment:
      - MYSQL_ROOT_PASSWORD=root # root用户密码
      - TZ=Asia/Shanghai # 设置容器时区
    volumes:
      - MYSQL8_LOG:/var/log/mysql # 映射日志目录,宿主机:容器
      - MYSQL8_DATA:/var/lib/mysql # 映射数据目录,宿主机:容器
      - MYSQL8_CONF:/etc/mysql # 映射配置目录,宿主机:容器
    ports:
      - "3306:3306" # 指定宿主机端口与容器端口映射关系,宿主机:容器
    restart: always
volumes:
  MYSQL8_LOG: { }
  MYSQL8_DATA:
    name: MYSQL8_DATA
    driver: local
    driver_opts:
      type: none
      # 指定本地文件
      device: /var/lib/mysql
      o: bind
  MYSQL8_CONF: { }

docker-compose 固定容器ip

docker-compose.yml 注意查看是否已经存在docker网络出现无法创建的情况请变更docker网络分发地址

yaml
name: "redis"
services:
  redis:
    image: registry.cn-beijing.aliyuncs.com/zbzly/redis
    ports:
      - "6379:6379"
    networks:
      redis_cluster_conf_net:
        ipv4_address: 172.18.0.16
networks:
  redis_cluster_conf_net:
    # 需要固定ip避免redis容器重启ip变化集群环境破坏
    ipam:
      config:
        - subnet: 172.18.0.0/24