1. 部署mysql
version: '3'
services:
mysql:
image: mysql
restart: always
container_name: mysql
environment:
MYSQL_ROOT_PASSWORD: password
TZ: Asia/Shanghai
ports:
- 3306:3306
volumes:
- /root/docker-compose/mysql/data:/var/lib/mysql
- /root/docker-compose/mysql/config/my.cnf:/etc/mysql/my.cnf
command:
--max_connections=1000
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--default-authentication-plugin=mysql_native_password
2. 部署redis
version: "3.9"
services:
redis:
image: redis
ports:
- "6321:6379"
volumes:
- ./config:/opt/config
- ./data:/data
command: redis-server /opt/config/redis.conf
3. 部署nginx
version: '3.1'
services:
nginx:
restart: always
image: nginx
container_name: nginx
ports:
- 5082:80
volumes:
- /home/application/docker_nginx/conf.d/:/etc/nginx/conf.d
- /home/application/docker_nginx/html:/usr/share/nginx/html
- /home/application/docker_nginx/logs:/var/log/nginx
4. 部署consul
version: '3.7'
services:
consul-server1:
image: hashicorp/consul:1.12.3
container_name: consul-server1
restart: always
volumes:
- ./server1.json:/consul/config/server1.json:ro
- ./certs/:/consul/config/certs/:ro
- ./logs/:/consul/logs/
- ./data/consul-server1:/consul/data
- ./consul-acl.json:/consul/config/consul-acl.json:ro
networks:
- consul
ports:
- "8500:8500"
- "8600:8600/tcp"
- "8600:8600/udp"
command: "agent -bootstrap-expect=3 -client=0.0.0.0 -log-file=/consul/logs/consul-01.log"
consul-server2:
image: hashicorp/consul:1.12.3
container_name: consul-server2
restart: always
volumes:
- ./server2.json:/consul/config/server2.json:ro
- ./certs/:/consul/config/certs/:ro
- ./logs/:/consul/logs/
- ./data/consul-server2:/consul/data
- ./consul-acl.json:/consul/config/consul-acl.json:ro
networks:
- consul
command: "agent -bootstrap-expect=3 -client=0.0.0.0 -log-file=/consul/logs/consul-02.log "
consul-server3:
image: hashicorp/consul:1.12.3
container_name: consul-server3
restart: always
volumes:
- ./server3.json:/consul/config/server3.json:ro
- ./certs/:/consul/config/certs/:ro
- ./logs/:/consul/logs/
- ./data/consul-server3:/consul/data
- ./consul-acl.json:/consul/config/consul-acl.json:ro
networks:
- consul
command: "agent -bootstrap-expect=3 -client=0.0.0.0 -log-file=/consul/logs/consul-03.log"
consul-client:
image: hashicorp/consul:1.12.3
container_name: consul-client
restart: always
volumes:
- ./client.json:/consul/config/client.json:ro
- ./certs/:/consul/config/certs/:ro
- ./logs/:/consul/logs/
- ./data/consul-client:/consul/data
- ./consul-acl.json:/consul/config/consul-acl.json:ro
networks:
- consul
command: "agent -client=0.0.0.0 -log-file=/consul/logs/client-01.log"
networks:
consul:
driver: bridge
5. 部署es
version: '2'
services:
cerebro:
image: lmenezes/cerebro:0.8.4
container_name: cerebro
ports:
- "9000:9000"
command:
- -Dhosts.0.host=http://es01:9201
networks:
- esnet
kibana:
image: kibana:7.3.0
container_name: kibana
environment:
- ELASTICSEARCH_HOSTS=http://es01:9201
# 需要将Kibana配置文件中的小写转换成大写,然后这个才能用于变量,才能被设置到
- I18N_LOCALE=zh-CN
- xpack.monitoring.ui.container.elasticsearch.enabled=false
ports:
- 5601:5601
networks:
- esnet
es00:
image: docker.elastic.co/elasticsearch/elasticsearch:7.3.0
container_name: es00
restart: always
environment:
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- "ES_JAVA_OPTS=-Des.insecure.allow.root=true"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- ./data/es00:/usr/share/elasticsearch/data
- ./config/es00/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
- ./logs/es00:/usr/share/elasticsearch/logs
ports:
- 9200:9200
- 9300:9300
networks:
- esnet
es01:
image: docker.elastic.co/elasticsearch/elasticsearch:7.3.0
container_name: es01
restart: always
environment:
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- "ES_JAVA_OPTS=-Des.insecure.allow.root=true"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- ./data/es01:/usr/share/elasticsearch/data
- ./config/es01/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
- ./logs/es01:/usr/share/elasticsearch/logs
ports:
- 9201:9201
- 9301:9301
networks:
- esnet
es02:
image: docker.elastic.co/elasticsearch/elasticsearch:7.3.0
container_name: es02
restart: always
environment:
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- ./data/es02:/usr/share/elasticsearch/data
- ./config/es02/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
- ./logs/es02:/usr/share/elasticsearch/logs
depends_on:
- es01
networks:
- esnet
ports:
- 9202:9202
- 9302:9302
es03:
image: docker.elastic.co/elasticsearch/elasticsearch:7.3.0
container_name: es03
restart: always
environment:
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- ./data/es03:/usr/share/elasticsearch/data
- ./config/es03/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
- ./logs/es03:/usr/share/elasticsearch/logs
depends_on:
- es01
networks:
- esnet
ports:
- 9203:9203
- 9303:9303
es04:
image: docker.elastic.co/elasticsearch/elasticsearch:7.3.0
container_name: es04
restart: always
environment:
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- ./data/es04:/usr/share/elasticsearch/data
- ./config/es04/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
- ./logs/es04:/usr/share/elasticsearch/logs
depends_on:
- es01
networks:
- esnet
ports:
- 9204:9204
- 9304:9304
es05:
image: docker.elastic.co/elasticsearch/elasticsearch:7.3.0
container_name: es05
restart: always
environment:
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- ./data/es05:/usr/share/elasticsearch/data
- ./config/es05/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
- ./logs/es05:/usr/share/elasticsearch/logs
depends_on:
- es01
networks:
- esnet
ports:
- 9205:9205
- 9305:9305
networks:
esnet: