1.下载,安装dockercompose,建议手动下载
国内镜像地址
1)将dockercompose 移到 /usr/local/bin 下
chmod 755 docker-compose mv docker-compose /usr/local/bin
2)验证
docker-compose -v
2.在/opt 目录下新建各个组件的文件夹用于挂载文件
3.正式编排服务
3.1.mysql
1)建立conf,data文件夹
2).docker-compose.yml 文件
version: '3.1'
services:
mysql:
image: mysql:5.7
container_name: mysql
privileged: true #一定要设置为true,不然数据卷可能挂载不了,启动不起
ports:
- 3306:3306
environment:
MYSQL_ROOT_PASSWORD: 密码 # 自己配置数据库密码
TZ: Asia/Shanghai
command:
--lower_case_table_names=1
--character-set-server=utf8mb4
--collation-server=utf8mb4_unicode_ci
--explicit_defaults_for_timestamp=true
volumes:
- /opt/mysql/data:/var/lib/mysql
- /opt/mysql/conf/:/etc/mysql/conf.d
restart: always
ports:
- "3306:3306"
3).在conf 下建立 my.cnf
[mysqld] user=mysql default-storage-engine=INNODB default-time_zone = '+8:00' sql-mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
4)cd到存放docker-compose.yml的文件夹下运行下面命令
docker-compose up -d
3.2 .redis
1)创立如下目录
2)docker-compose.yml
version: '2'
services:
redis:
image: redis:2.8.17
container_name: redis
command: redis-server --requirepass 密码
restart: always
ports:
- "6379:6379"
volumes:
- /opt/redis/data:/data
3)运行同mysql
3.3. es
1)建立如下目录
2)
version: '3'
services:
# search engine
elasticsearch:
image: elasticsearch:7.7.0
container_name: elasticsearch
environment:
- "discovery.type=single-node"
- http.port=9200
- http.cors.enabled=true
- http.cors.allow-origin=*
- ES_JAVA_OPTS=-Xms512m -Xmx512m
volumes:
- /opt/es/data:/usr/share/elasticsearch/data
- /opt/es/plugins:/usr/share/elasticsearch/plugins
- /opt/es/logs/:/user/share/elasticsearch/logs
- /opt/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
restart: always
ports:
- '9200:9200'
- '9300:9300'
# elasticsearch browser
dejavu:
image: appbaseio/dejavu:3.2.3
container_name: dejavu
restart: always
ports:
- '1358:1358'
links:
- elasticsearch
4)配置文件
elasticsearch.yml
http.host: 0.0.0.0
5)启动同上
3.4.rabbitmq
1)建立如下目录
2)docker-compose.yml
version: '2'
services:
rabbitmq:
#setup host name
hostname: rabbitmq
#use docker images
image: rabbitmq:management
ports:
- 15672:15672 #客户端连接端口映射
- 5672:5672
restart: always
volumes:
- /opt/rabbitmq/data:/var/lib/rabbitmq #数据卷映射
4)下载对应版本的延时队列插件 rabbitmq_delayed_message_exchange
https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases
放到 cp /opt/rabbitmq/plugins/ 目录下
5)将其移入docker 容器
# a127c51394e6 rabbitmq的容器id docker cp /opt/rabbitmq/plugins/rabbitmq_delayed_message_exchange-3.9.0.ez a127c51394e6:/plugins
6)进入容器
docker exec -it rabbitmq /bin/bash
7)进入插件目录启动插件
cd plugins #启动插件 rabbitmq-plugins enable rabbitmq_delayed_message_exchange
3)启动同上
3.5.consul
1)docker-compose.yml
version: '2.0'
services:
consul:
image: consul:1.6.1
container_name: 'consul'
ports:
- 8500:8500 #换成其他端口外网无法访问,具体原因未知
restart: always
volumes:
- /opt/consul/data:/consul/data
command: agent -server -ui -datacenter=dc -domain=ci -bootstrap -client=0.0.0.0
2)启动同上



