首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker-Compose搭建mysql、redis、zookeeper、rabbitmq、consul、elasticsearch环境

Docker-Compose搭建mysql、redis、zookeeper、rabbitmq、consul、elasticsearch环境

作者头像
gang_luo
发布2020-08-13 14:08:50
1.7K1
发布2020-08-13 14:08:50
举报
文章被收录于专栏:gang_luogang_luo

编写 docker-compose.yml 文件

version: '3'
services:
  mysql:
    hostname: mysql
    image: mysql:5.7.26
    # network_mode: "host" # 如果需要容器使用宿主机IP(内网IP),则可以配置此项
    container_name: mysql # 指定容器名称,如果不设置此参数,则由系统自动生成
    restart: always # 设置容器自启模式
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci # 设置utf8字符集
    environment:
      - TZ=Asia/Shanghai # 设置容器时区与宿主机保持一致
      - MYSQL_ROOT_PASSWORD=root # 设置root密码
    volumes:
       - /etc/localtime:/etc/localtime:ro # 设置容器时区与宿主机保持一致
       - ./mysql/data:/var/lib/mysql/data # 映射数据库保存目录到宿主机,防止数据丢失
       - ./mysql/my.cnf:/etc/mysql/my.cnf # 映射数据库配置文件
    ports:
        - "3306:3306"
    privileged: true
  
  redis:  
    hostname: redis
    image: redis:5.0.4
    container_name: redis
    restart: always
    command: redis-server /etc/redis.conf # 启动redis命令
    environment:
      - TZ=Asia/Shanghai
    volumes:
      - /etc/localtime:/etc/localtime:ro # 设置容器时区与宿主机保持一致
      - ./redis/data:/data
      - ./redis/redis.conf:/etc/redis.conf
    ports:
        - "6379:6379"
    privileged: true
   
  zoo1:
    image: zookeeper
    restart: always
    container_name: zoo1
    ports:
        - "2181:2181"
  rabbitmq:
    image: rabbitmq:management-alpine
    restart: always
    container_name: rabbitmq
    environment:
      - RABBITMQ_DEFAULT_USER=guest
      - RABBITMQ_DEFAULT_PASS=guest
    ports:
      - "15672:15672"
      - "5672:5672"
    logging:
      driver: "json-file"
      options:
        max-size: "200k"
        max-file: "10"
  consul:
    restart: always
    image: consul:latest
    restart: always
    container_name: consul
    ports:
      - 8300:8300
      - 8301:8301
      - 8301:8301/udp
      - 8302:8302
      - 8302:8302/udp
      - 8500:8500
      - 8600:8600
      - 8600:8600/udp 
    command: agent -server -data-dir=/consul/data -config-dir=/consul/config -bootstrap -node=consul1140_0 -client=0.0.0.0
  es-master:
    image:  elasticsearch
    container_name: es-master
    restart: always
    volumes:
     - ./ek/master/data:/usr/share/elasticsearch/data:rw
     - ./ek/master/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
     - ./ek/master/logs:/user/share/elasticsearch/logs:rw
    ports:
     - "9200:9200"
     - "9300:9300"
    privileged: true
  es-node1:
    image:  elasticsearch
    container_name: es-node1
    restart: always
    volumes:
     - ./ek/node1/data:/usr/share/elasticsearch/data:rw
     - ./ek/node1/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
     - ./ek/node1/logs:/user/share/elasticsearch/logs:rw
    privileged: true
  es-node2:
    image:  elasticsearch
    container_name: es-node2
    restart: always
    volumes:
     - ./ek/node2/data:/usr/share/elasticsearch/data:rw
     - ./ek/node2/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
     - ./ek/node2/logs:/user/share/elasticsearch/logs:rw
    privileged: true

创建并启动容器 如果文件名就叫做docker-compose.yml则可以不适用-f选项指定文件路劲,up选项启动容器,-d选项以守护模式运行

docker-compose -f docker-compose.yml up -d

如果要批量停止容器并清除容器,可以使用down命令

docker-compose -f docker-compose.yml down

如果要重新构建容器,可以使用–build选项

docker-compose -f docker-compose.yml up --build -d

如果启动失败,可以查看容器日志信息获取帮助

docker logs 容器名词或容器ID # 既docker-compose.yml文件参数container_name指定的值
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-02-04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档