服务搭建
1.redis 2.mysql 3.ribbitmq 4.mongodb 5. mongo-express 6.portainer
注意初始脚本必须重新构建的时候才生效需要1.删除已有镜像 2.删除data目录
- version: '3'
- services:
- redis:
- image: "redis:6.0"
- # 容器名(以后的控制都通过这个)
- container_name: redis
- hostname: redis
- restart: always
- privileged: true
- ports:
- - 6378:6379
- environment:
- TZ: Asia/Shanghai
- volumes:
- - ./data/redis/:/data
- - ./conf/redis/redis.conf:/etc/redis/redis.conf
- - ./logs/redis/:/logs
- command: ["redis-server","/etc/redis/redis.conf"]
- mysql:
- image: mysql:5.7
- # 容器名(以后的控制都通过这个)
- container_name: mysql
- hostname: mysql
- # 重启策略
- restart: always
- ports:
- - "3306:3306"
- volumes:
- # 挂挂载配置文件
- - ./conf/mysql:/etc/mysql/conf.d
- # 挂载日志
- - ./logs/mysql/:/logs
- # 挂载数据
- - ./data/mysql:/var/lib/mysql
- - ./init/mysql/:/docker-entrypoint-initdb.d/
- command: [
- 'mysqld',
- '--innodb-buffer-pool-size=80M',
- '--character-set-server=utf8mb4',
- '--collation-server=utf8mb4_unicode_ci',
- '--default-time-zone=+8:00',
- '--lower-case-table-names=1'
- ]
- environment:
- # root 密码
- MYSQL_ROOT_PASSWORD: 123456
- #rabbitmq
- rabbitmq:
- #mq依赖的镜像
- image: rabbitmq:3-management
- container_name: rabbitmq
- hostname: rabbitmq
- # 重启策略
- restart: always
- ports:
- - 15672:15672
- - 5672:5672
- volumes:
- - ./data/rabbit:/var/lib/rabbitmq
-
- mongodb:
- image: mongo:4.4
- container_name: mongodb
- hostname: mongodb
- restart: always
- networks:
- - networkdb
- command: --auth
- environment:
- # 时区上海
- TZ: Asia/Shanghai
- MONGO_INITDB_ROOT_USERNAME: admin
- MONGO_INITDB_ROOT_PASSWORD: 123456
- MONGO_INITDB_DATABASE: collector
- MONGO_USERNAME: mongodb
- MONGO_PASSWORD: mongodb
- volumes:
- - ./data/mongo/:/data/db
- - ./init/mongo/:/docker-entrypoint-initdb.d/
- - ./conf/mongo/mongod.conf:/etc/mongo/mongod.conf
- ports:
- - 27017:27017
-
- mongo-express:
- image: mongo-express
- container_name: mongo-express
- hostname: mongo-express
- restart: always
- networks:
- - networkdb
- ports:
- - 8081:8081
- environment:
- ME_CONFIG_MONGODB_ADMINUSERNAME: admin
- ME_CONFIG_MONGODB_ADMINPASSWORD: 123456
- ME_CONFIG_MONGODB_URL: mongodb://admin:123456@mongodb:27017/
-
- #docker监控
- portainer:
- image: portainer/portainer
- container_name: portainer
- volumes:
- - /var/run/docker.sock:/var/run/docker.sock
- - ./data/portainer/:/data
- ports:
- - "8000:8000"
- - "9000:9000"
-
- networks:
- networkdb:
config:软件配置目录
init:软件初始目录
data:软件数据目录
logs:软件日志目录
mysql初始脚本:创建初始用户(非root)并授权
- use mysql;
- create user 'collector'@'%' IDENTIFIED by '!QAZ@WSX3edc';
- grant all on *.* to collector@'%';
mongo初始脚本:注意use数据库不能用环境变量代替,代替就生成用户失败 不知道为什么?
- #!/bin/bash
-
- echo "jjjjjjjjjjjjjjjjjjjjjjjjjjjjj"
- echo "'$MONGO_USERNAME'"
- echo '$MONGO_PASSWORD'
- echo '$MONGO_INITDB_DATABASE'
-
- mongo <<EOF
- use admin
- db.createUser({ user:'$MONGO_INITDB_ROOT_USERNAME',pwd:'$MONGO_INITDB_ROOT_PASSWORD',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});
- db.auth('$MONGO_INITDB_ROOT_USERNAME', '$MONGO_INITDB_ROOT_PASSWORD');
- use test;
- db.createUser(
- {
- user: 'mongo',
- pwd: 'mongo',
- roles: [ { role: "readWrite", db: 'test' } ]
- }
- );
- use collector;
- db.createUser(
- {
- user: '$MONGO_USERNAME',
- pwd: '$MONGO_PASSWORD',
- roles: [ { role: "readWrite", db: '$MONGO_INITDB_DATABASE' } ]
- }
- );
- EOF