Published on

docker-compose 常用配置

本文总结Redis、MySQL、RabbitMQ、MongoDB等服务的docker-compose核心配置,涵盖版本选择、端口映射、数据持久化、密码设置及网络配置,助力快速搭建开发环境。

mysql


version: "3"

services:
  mysql:
    image: mysql
    container_name: mysql
    command:
      --default-authentication-plugin=mysql_native_password
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: 123456
      MYSQL_ROOT_HOST: '%'
      TZ: Asia/Shanghai
    ports:
      - 3306:3306
    volumes:
      - /home/docker/mysql/data:/var/lib/mysql
      - /home/docker/mysql/conf:/etc/mysql/conf.d
      - /home/docker/mysql/logs:/logs
    logging:
      options:
        max-size: "1g"

nginx


version: "3.0"

services:
    nginx:
        image: nginx:latest
        container_name: nginx
        volumes:
            - /home/docker/nginx/conf.d:/etc/nginx/conf.d
            - /home/docker/nginx/nginx.conf:/etc/nginx/nginx.conf
            - /home/docker/nginx/logs:/var/log/nginx
            - /home/docker/nginx/www:/usr/share/nginx
        environment:
            TZ: Asia/Shanghai
        ports:
            - "80:80"
            - "443:443"
        restart: always
        logging:
            options:
                max-size: "1g"

rabbitmq


version: "3"

services:
  rabbitmq:
      image: rabbitmq:management-alpine
      container_name: rabbitmq
      restart: always
      environment:
        RABBITMQ_DEFAULT_USER: root
        RABBITMQ_DEFAULT_PASS: 123456
        TZ: Asia/Shanghai
      ports:
        - 5672:5672
        - 15672:15672
      volumes:
        - /home/docker/rabbitmq/data:/var/lib/rabbitmq
        - /home/docker/rabbitmq/log:/var/log/rabbitmq
      logging:
        options:
          max-size: "1g"

mongodb


version: "3"

services:
  mongodb:
    image: mongo:4.4.0
    container_name: mongodb
    restart: always
    environment:
        - MONGO_INITDB_ROOT_USERNAME=admin
        - MONGO_INITDB_ROOT_PASSWORD=1234567
    volumes:
        - /home/docker/mongodb/data:/data/db
        - /home/docker/mongodb/logs:/data/logs
    ports:
        - 27017:27017

redis


  redis:
    image: redis:6.2.6
    container_name: redis
    command: redis-server --requirepass 123456 --appendonly yes
    restart: always
    environment:
      TZ: Asia/Shanghai
      LANG: en_US.UTF-8
    ports:
      - 6379:6379
    volumes:
      - /home/docker/redis/data:/data
      - /home/docker/redis/conf:/usr/local/etc/redis

consul


consul:
    image: hashicorp/consul:1.12.3
    container_name: consul
    restart: always
    volumes:
        - /home/docker/consul/data:/consul/data
    ports:
        - 8300:8300
        - 8301:8301
        - 8302:8302
        - 8500:8500
        - 8600:8600
    command: "agent -server -ui -node=n1 -bootstrap -client=0.0.0.0 -advertise=192.168.0.137"