Skip to content

Commit 89701ef

Browse files
committed
新增mongo的安装文档
1 parent 44f79e6 commit 89701ef

File tree

3 files changed

+177
-0
lines changed

3 files changed

+177
-0
lines changed

docker-compose.yaml

+82
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
version: '3.5'
2+
3+
services:
4+
mysql:
5+
hostname: mysql
6+
image: mysql:5.7.26
7+
container_name: mysql #指定容器名称,如果不设置此参数,则由系统自动生成
8+
restart: always #设置容器自启模式
9+
command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci #设置utf8字符集
10+
environment:
11+
- TZ=Asia/Shanghai #设置容器时区与宿主机保持一致
12+
- MYSQL_ROOT_PASSWORD='123456' #等同于 -e MYSQL_ROOT_PASSWORD 指定root的登录密码
13+
- MYSQL_ALLOW_EMPTY_PASSWORD='no'
14+
- MYSQL_DATABASE='docker' #这里这个指令compose启动成功后会自动创建名为docker的数据库
15+
- MYSQL_USER='docker' #此处就是相当于 mysql create user,创建了数据库的登录用户
16+
- MYSQL_PASSWORD='654321' #docker这个用户的数据库密码
17+
volumes:
18+
- /etc/localtime:/etc/localtime:ro #设置容器时区与宿主机保持一致
19+
- $PWD/mysql/data:/var/lib/mysql/data #映射数据库保存目录到宿主机,防止数据丢失
20+
- $PWD/mysql/my.cnf:/etc/mysql/my.cnf #映射数据库配置文件
21+
ports:
22+
- "3306:3306"
23+
privileged: true
24+
25+
redis:
26+
hostname: redis
27+
image: redis:5.0.4
28+
container_name: redis
29+
restart: always
30+
command: redis-server /etc/redis.conf #启动redis命令
31+
environment:
32+
- TZ=Asia/Shanghai
33+
volumes:
34+
- /etc/localtime:/etc/localtime:ro #设置容器时区与宿主机保持一致
35+
- $PWD/redis/data:/data
36+
- $PWD/redis/redis.conf:/etc/redis.conf
37+
ports:
38+
- "6379:6379"
39+
privileged: true
40+
41+
zoo1:
42+
image: zookeeper
43+
restart: always
44+
container_name: zoo1
45+
ports:
46+
- "2181:2181"
47+
privileged: true
48+
49+
minio:
50+
image: minio/minio
51+
restart: always
52+
container_name: minio
53+
ports:
54+
- 9000:9000 #api 端口
55+
- 9001:9001 #控制台端口
56+
environment:
57+
- MINIO_ACCESS_KEY=admin #管理后台用户名
58+
- MINIO_SECRET_KEY=admin123 #管理后台密码,最小8个字符
59+
volumes:
60+
- /etc/localtime:/etc/localtime:ro #设置容器时区与宿主机保持一致
61+
- $PWD/minio/data:/data #映射当前目录下的data目录至容器内/data目录
62+
- $PWD/minio/config:/root/.minio/ #映射配置目录
63+
command: server --console-address ':9001' /data #指定容器中的目录 /data
64+
privileged: true
65+
66+
rabbitmq:
67+
image: rabbitmq:management
68+
restart: always
69+
container_name: rabbitmq
70+
environment:
71+
- RABBITMQ_DEFAULT_USER=admin
72+
- RABBITMQ_DEFAULT_PASS=admin
73+
volumes:
74+
- $PWD/rabbitmq/data:/var/lib/rabbitmq
75+
ports:
76+
- "15672:15672"
77+
- "5672:5672"
78+
logging:
79+
driver: "json-file"
80+
options:
81+
max-size: "200k"
82+
max-file: "10"

mongodb/README.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
参考资料:
2+
3+
https://www.cnblogs.com/mxnote/articles/16899560.html 使用Docker-Compose安装MongoDB
4+
5+
http://www.manongjc.com/detail/27-itrwydqvcfkkefq.html docker-compose安装mongo并初始化

mongodb/docker-compose安装mongo.md

+90
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
# docker-compose安装mongo并初始化
2+
3+
# 一、创建目录
4+
5+
```bash
6+
mkdir -p /data0/mongo/{data,conf,init}
7+
```
8+
9+
# 二、创建初始化用户脚本
10+
11+
```bash
12+
[root@mongo]# cat /root/tools/mongo/init/init.sh
13+
#!/usr/bin/env bash
14+
echo "Creating mongo users..."
15+
16+
mongo admin --host localhost -u root -p 123456 --eval "db.createUser({user:'admin',pwd:'123456',roles:[{role:'userAdminAnyDatabase',db:'admin'},{role:'readWrite',db:'test'}]});"
17+
18+
mongo admin -u root -p 123456 << EOF
19+
use test
20+
db.createCollection("logs", { autoIndexId : true })
21+
EOF
22+
echo "Mongo users created."
23+
```
24+
25+
# 三、docker-compose配置文件
26+
27+
```bash
28+
cat <<'EOF'>docker-compose.yml
29+
version: '3'
30+
services:
31+
mongo:
32+
image: mongo:4.4.6
33+
container_name: mongo
34+
hostname: mongo
35+
restart: always
36+
networks:
37+
- db
38+
ports:
39+
- "27017:27017"
40+
environment:
41+
TZ: Asia/Shanghai
42+
MONGO_INITDB_DATABASE: test
43+
MONGO_INITDB_ROOT_USERNAME: root
44+
MONGO_INITDB_ROOT_PASSWORD: 123456
45+
volumes:
46+
- /etc/localtime:/etc/localtime
47+
- /data0/mongo/data:/data/db
48+
- /data0/mongo/conf:/data/configdb
49+
- /data0/mongo/init/:/docker-entrypoint-initdb.d/
50+
command: mongod
51+
52+
mongo-express:
53+
image: mongo-express
54+
container_name: mongo-express
55+
restart: always
56+
links:
57+
- mongo:mongo
58+
depends_on:
59+
- mongo
60+
networks:
61+
- db
62+
ports:
63+
- "27018:8081"
64+
environment:
65+
ME_CONFIG_OPTIONS_EDITORTHEME: 3024-night
66+
ME_CONFIG_MONGODB_SERVER: mongo
67+
ME_CONFIG_MONGODB_ADMINUSERNAME: root
68+
ME_CONFIG_MONGODB_ADMINPASSWORD: 123456
69+
ME_CONFIG_BASICAUTH_USERNAME: root
70+
ME_CONFIG_BASICAUTH_PASSWORD: 123456
71+
72+
networks:
73+
db:
74+
driver: bridge
75+
EOF
76+
```
77+
78+
# 四、启动服务
79+
80+
```bash
81+
[root@mongo]# docker-compose up -d
82+
```
83+
84+
# 五、注意事项
85+
86+
初始化脚本只有再data数据目录为空时会执行,若未执行初始化脚本,可删除目录重新创建后执行
87+
88+
# 参考资料:
89+
90+
https://www.cnblogs.com/inclme/p/15829489.html docker-compose安装mongo

0 commit comments

Comments
 (0)