1、部署MongoDB
(1)new好一个mongo文件之后执行
(出现mongodb.key)记得放行端口
openssl rand -base64 666 > mongodb.key
(2)放到一个docker-compose.yml之后docker-compose up -d执行
version: '3.2'
services:
# 服务名称
mongodb-27017:
# 使用最新的 mongodb 镜像
image: mongo:latest
# docker 服务启动时,自动启动 mongo 容器
restart: always
# 容器的名称
container_name: mongodb-27017
# 宿主机中的目录和文件,映射容器内部的目录和文件
volumes:
- ./27017/data:/data/db
- ./mongodb.key:/data/mongodb.key
ports:
# 宿主机的端口映射容器内的端口
- 27017:27017
environment:
# 初始化一个 root 角色的用户 jobs 密码是 123456
- MONGO_INITDB_ROOT_USERNAME=root
- MONGO_INITDB_ROOT_PASSWORD=lht660036
# 使用创建的桥接网络,把各个 mongodb 容器连接在一起
networks:
- mongo-network
# 启动容器时,在容器内部额外执行的命令
# 其中 --replSet 参数后面的 mongos 是集群名称,这个很重要
command: mongod --replSet mongos --keyFile /data/mongodb.key
entrypoint:
- bash
- -c
- |
chmod 400 /data/mongodb.key
chown 999:999 /data/mongodb.key
exec docker-entrypoint.sh $$@
mongodb2:
image: mongo:latest
restart: always
container_name: mongodb-27018
volumes:
- ./27018/data:/data/db
- ./mongodb.key:/data/mongodb.key
ports:
- 27018:27017
environment:
- MONGO_INITDB_ROOT_USERNAME=root
- MONGO_INITDB_ROOT_PASSWORD=lht660036
networks:
- mongo-network
command: mongod --replSet mongos --keyFile /data/mongodb.key
entrypoint:
- bash
- -c
- |
chmod 400 /data/mongodb.key
chown 999:999 /data/mongodb.key
exec docker-entrypoint.sh $$@
mongodb3:
image: mongo:latest
restart: always
container_name: mongodb-27019
volumes:
- ./27019/data:/data/db
- ./mongodb.key:/data/mongodb.key
ports:
- 27019:27017
environment:
- MONGO_INITDB_ROOT_USERNAME=root
- MONGO_INITDB_ROOT_PASSWORD=lht660036
networks:
- mongo-network
command: mongod --replSet mongos --keyFile /data/mongodb.key
entrypoint:
- bash
- -c
- |
chmod 400 /data/mongodb.key
chown 999:999 /data/mongodb.key
exec docker-entrypoint.sh $$@
# 创建一个桥接网络,把各个 mongodb 实例连接在一起,该网络适用于单机
# 如果在不同的宿主机上,使用 docker swarm 需要创建 overlay 网络
networks:
mongo-network:
driver: bridge
(3)然后随便进入一个容器,输入账号密码
docker exec -it 461950f32d09 '/bin/bash'
(4)进去之后初始化一下
rs.initiate({
_id: "mongos",
members: [
{ _id : 0, host : "129.204.151.181:27017" },
{ _id : 1, host : "129.204.151.181:27018" },
{ _id : 2, host : "129.204.151.181:27019" }
]
});