专栏首页gang_luoDocker-Compose搭建mysql、redis、zookeeper、rabbitmq、consul、elasticsearch环境

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

编写 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指定的值

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Docker个人常用命令整理

    gang_luo
  • Java常用设计模式--三种工厂模式之工厂模式(Factory Pattern)

    工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。

    gang_luo
  • Docker安装harbor仓库、更改端口、跨服务器访问

    添加如下配置: –insecure-registry 192.168.2.4:自己的端口

    gang_luo
  • Kubernetes中pod资源对象管理

    其实在日常的工作中,我们并不会直接在PaaS平台运行容器,而是以pod为单位对应用进行部署。一个pod可以包含一个或多个容器,pod中的容器肯定是在同一台主机中...

    泽阳
  • 【深度学习】写诗机器人tensorflow实现

    代码地址:https://github.com/hjptriplebee/Chinese_poem_generator, 欢迎fork, star 机器人命名M...

    triplebee
  • GOLDENGATE内存管理以及如何正确设置内存参数

    首先要说明是goldengate管理的内存不是物理内存,管理只是virtual memroy和swap disk,这个被称为cachesize manageme...

    徐靖
  • es7 --- 新特性

    使用indexOf()验证数组中是否存在某个元素,这时需要根据返回值是否为-1来判断:

    小蔚
  • 泛型泛型知多少

    泛型是JDK 5引入的概念,泛型的引入主要是为了保证java中类型的安全性,有点像C++中的模板。

    程序那些事
  • Second Minimum Node In a Binary Tree

    Tyan
  • 调整进程的最大linux文件描述符

    1.介绍 ---- ulimit 命令提供了针对 shell和或由该 shell 启动的进程占用资源的控制。  持久化修改生效是在/etc/security/l...

    昊楠Hacking

扫码关注云+社区

领取腾讯云代金券