天天看點

運維進階——docker一鍵搭建部署環境(中間件)

version: '3'

services:

redis:

image: 鏡像倉庫/redis:5.0.8

restart: always

container_name: redis

command: redis-server /usr/local/etc/redis/redis.conf #路徑

ports:

- "16379:6379" #端口

volumes:

- /opt/data/redis/store:/data

- /opt/data/redis/redis.conf:/usr/local/etc/redis/redis.conf #配置環境

nacos:

image: 鏡像倉庫/nacos/nacos-server:1.2.1

container_name: nacos

restart: always

environment:

- PREFER_HOST_MODE=hostname

- MODE=standalone

volumes:

- /opt/data/nacos-server/standalone-logs/:/home/nacos/logs #日志,注意清理

- /opt/data/nacos-server/custom.properties:/home/nacos/init.d/custom.properties #配置環境

ports:

- "8848:8848" #端口,通路:http://ip:8848/nacos 密碼如果無改動預設nacos

nginx:

image: 鏡像倉庫/nginx:1.20.2

container_name: nginx

restart: always

volumes:

- /opt/data:/opt/data

- /opt/data/nginx/nginx.conf:/etc/nginx/nginx.conf #配置環境,配置檔案路徑

- /opt/data/nginx/log:/var/log/nginx #日志

network_mode: 'host' #端口有代理的話預設與網站端口一樣,沒代理就需要配置

seata:

image: 鏡像倉庫/seataio/seata-server:1.1.0

container_name: seata

ports:

- 8091:8091 #端口

volumes:

- /opt/data/seata/conf:/root/seata-config #配置環境,配置檔案路徑

environment:

- SEATA_PORT=8091

- STORE_MODE=file

- SEATA_IP=ip #自填

- SEATA_CONFIG_NAME=file:/root/seata-config/registry

depends_on:

- nacos

運維進階——docker一鍵搭建部署環境(中間件)

namesrv:

image: 鏡像倉庫/rocketmqinc/rocketmq:4.4.0

container_name: rmqnamesrv

restart: always

ports:

- 9876:9876

volumes:

- /opt/data/rocketmq/logs:/home/rocketmq/logs

- /opt/data/rocketmq/store:/home/rocketmq/store

command: sh mqnamesrv

environment:

- "JAVA_OPT_EXT=-Xms512m -Xmx1g"

broker:

image: 鏡像倉庫/rocketmqinc/rocketmq:4.4.0

container_name: rmqbroker

restart: always

ports:

- 10909:10909

- 10911:10911

- 10912:10912

volumes:

- /opt/data/rocketmq/logs:/home/rocketmq/logs

- /opt/data/rocketmq/store:/home/rocketmq/store

- /opt/data/rocketmq/conf/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf

command: sh mqbroker -n namesrv:9876 -c ../conf/broker.conf

depends_on:

- namesrv

environment:

- "JAVA_OPT_EXT=-Xms512m -Xmx2g"

console:

image: 鏡像倉庫/styletang/rocketmq-console-ng:1.0.0

container_name: rocketmq-console-ng

restart: always

ports:

- 18087:8080

depends_on:

- namesrv

environment:

- JAVA_OPTS=-Xms512m -Xmx512m -Dlogging.level.root=info -Drocketmq.namesrv.addr=rmqnamesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false

運維進階——docker一鍵搭建部署環境(中間件)

es:

image: 鏡像倉庫/elasticearch-ik:6.8.5

container_name: elasticsearch

environment:

- "cluster.name=elasticsearch" #設定叢集名稱為elasticsearch

- "discovery.type=single-node" #以單一節點模式啟動

volumes:

- /opt/data/elasticsearch/data:/usr/share/elasticsearch/data #資料檔案挂載

ports:

- 9200:9200

- 9300:9300

logstash:

image: 鏡像倉庫/logstash:6.8.5

container_name: logstash

volumes:

- /opt/data/logstash/logstash.conf:/usr/share/logstash/pipeline/logstash.conf #挂載logstash的配置>檔案

depends_on:

- es #kibana在elasticsearch啟動之後再啟動

ports:

- 4560:4560

- 9600:9600

environment:

- LS_JAVA_OPTS=-Xms512m -Xmx1g

kibana:

image: 鏡像倉庫/kibana:6.8.5

container_name: kibana

depends_on:

- es #kibana在elasticsearch啟動之後再啟動

environment:

- "elasticsearch.hosts=http://ip:9200" #設定通路elasticsearch的位址

- "SERVER_BASEPATH=/elk"

- "SERVER_REWRITEBASEPATH=true"

ports:

- 15601:5601