服务搭建
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-compose
hostname: redis-compose
restart: always
privileged: true
ports:
- 6379:6379
environment:
TZ: Asia/Shanghai
volumes:
- ./data/redis/:/data
- ./conf/redis:/etc/redis
- ./logs/redis/:/logs
command: ["redis-server","/etc/redis/redis.conf"]
mysql:
image: mysql:5.7
# 容器名(以后的控制都通过这个)
container_name: mysql-compose
hostname: mysql-compose
# 重启策略
restart: always
ports:
- "3306:3306"
privileged: true
volumes:
# 挂挂载配置文件
- ./conf/mysql:/etc/mysql/conf.d
# 挂载日志
- ./logs/mysql/:/var/log/mysql
# 挂载数据
- ./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-compose
hostname: rabbitmq-compose
# 重启策略
restart: always
ports:
- 15672:15672
- 5672:5672
volumes:
- ./data/rabbit:/var/lib/rabbitmq
- ./init/rabbit:/docker-entrypoint-initdb.d/
#environment:
# root 密码
#RABBITMQ_DEFAULT_USER: rabbit
#RABBITMQ_DEFAULT_PASS: rabbit
mongodb:
image: mongo:4.4
container_name: mongodb-compose
hostname: mongodb-compose
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:/etc/mongo/mongod.conf
- ./logs/mongo:/var/log/mongodb
ports:
- 27017:27017
mongo-express:
image: mongo-express
container_name: mongo-express-compose
hostname: mongo-express-compose
restart: always
depends_on:
- mongodb
networks:
- networkdb
ports:
- 8081:8081
environment:
ME_CONFIG_MONGODB_ADMINUSERNAME: admin
ME_CONFIG_MONGODB_ADMINPASSWORD: 123456
ME_CONFIG_MONGODB_URL: mongodb://admin:123456@mongodb-compose:27017/
#docker监控
portainer:
image: portainer/portainer-ce
container_name: portainer-compose
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./data/portainer/:/data
ports:
- "8000:8000"
- "9000:9000"
- "9443:9443"
networks:
networkdb:
config:软件配置目录
redis.conf
mongod.conf
init:软件初始目录
mkdir -p ./init/mongo
mkdir -p ./init/mysql
mkdir -p ./init/rabbit
data:软件数据目录
logs:软件日志目录
mysql初始脚本:创建初始用户(非root)并授权 init.sql
use mysql;
create user 'collector'@'%' IDENTIFIED by '!QAZ@WSX3edc';
grant all on *.* to collector@'%';
mongo初始脚本:init.sh 注意use数据库不能用环境变量代替,代替就生成用户失败 不知道为什么?
#!/bin/bash
echo "jjjjjjjjjjjjjjjjjjjjjjjjjjjjj"
echo "'$MONGO_USERNAME'"
echo "'$MONGO_PASSWORD'"
mongo <<EOF
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: 'collector' } ]
}
);
EOF
rabbitmq初始脚本 init.sh
#!/bin/bash
/opt/rabbitmq/sbin/rabbitmqctl add_user admin admin
/opt/rabbitmq/sbin/rabbitmqctl set_user_tags admin administrator
/opt/rabbitmq/sbin/rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
版权声明:本文为three_stand原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。