docker-compose 部署常见的服务

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:

 

posted @ 2023-07-15 17:23  羊脂玉净瓶  阅读(19)  评论(0)    收藏  举报