Docker-Compose搭建mysql、redis、zookeeper、rabbitmq、consul、elasticsearch环境
时间:2022-07-23
本文章向大家介绍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指定的值
- 设计模式六大原则(1):单一职责原则
- 设计模式六大原则(2):里氏替换原则
- Selenium2+python自动化72-logging日志使用
- Codeforces Round #395 (Div. 2)(A.思维,B,水)
- php实现图形计算器
- Selenium2+python自动化73-定位的坑:class属性有空格
- 华中农业大学第五届程序设计大赛网络同步赛题解
- Java构造方法与析构方法实例剖析
- 5.训练模型之利用训练的模型识别物体
- KMP算法学习(详解)
- 查找算法的实现(C/C++实现)
- HDU 1495 非常可乐(数论,BFS)
- Selenium2+python自动化74-jquery定位
- 用php实现简单的自制计算器
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- spring之未加后置处理器的bean的生命周期
- linux之在centos7中配置java开发环境
- 秒懂java规则表达式框架Aviator2.3.0
- 细品Redis高性能数据结构之SDS
- linux之第一个shell程序
- pyspark之从HDFS上读取文件、从本地读取文件
- spring之使用外部属性文件(连接数据库时使用)
- 【python-leetcode92-翻转链表】反转链表2
- 细品Redis高性能数据结构之hash对象
- pyspark之常用算子
- linux之shell综合例子之定时任务
- spring之配置单例的集合bean,以供多个bean进行引用
- 【python-leetcode25-翻转链表】K 个一组翻转链表
- spring之通过实例工厂方法配置Bean
- 细品redis分布式锁