mongodb
docker创建副本集
宝塔默认
services:
mongodb_S4Yj:
image: mongo:7.0.12
# container_name: ${CONTAINER_NAME}
deploy:
resources:
limits:
cpus: ${CPUS}
memory: ${MEMORY_LIMIT}
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: ${USERNAME}
MONGO_INITDB_ROOT_PASSWORD: ${PASSWORD}
ports:
- ${HOST_IP}:${SERVICE_PORT}:27017
volumes:
- ${APP_PATH}/data:/data/db
labels:
createdBy: "bt_apps"
networks:
- baota_net
networks:
baota_net:
external: true
VERSION=7.0.12
CONTAINER_NAME=CONTAINER_NAME
HOST_IP=0.0.0.0
SERVICE_PORT=27017
USERNAME=mongodb
PASSWORD=riSYinCCinzEzjNA
CPUS=0
MEMORY_LIMIT=0MB
APP_PATH=/www/dk_project/dk_app/mongodb/mongodb_S4Yjcompose
services:
mongo1:
image: mongo:7.0.12
container_name: mongo1
networks:
- mongo-network
environment:
MONGO_INITDB_ROOT_USERNAME: mongodb
MONGO_INITDB_ROOT_PASSWORD: riSYinCCinzEzjNA
ports:
- "0.0.0.0:27017:27017"
volumes:
- mongo1-data:/data/db
- ./mongodb-keyfile:/data/keyfile/mongodb-keyfile
command: --replSet rs0 --keyFile /data/keyfile/mongodb-keyfile
mongo2:
image: mongo:7.0.12
container_name: mongo2
networks:
- mongo-network
environment:
MONGO_INITDB_ROOT_USERNAME: mongodb
MONGO_INITDB_ROOT_PASSWORD: riSYinCCinzEzjNA
ports:
- "0.0.0.0:27018:27017"
volumes:
- mongo2-data:/data/db
- ./mongodb-keyfile:/data/keyfile/mongodb-keyfile
command: --replSet rs0 --keyFile /data/keyfile/mongodb-keyfile
mongo3:
image: mongo:7.0.12
container_name: mongo3
networks:
- mongo-network
environment:
MONGO_INITDB_ROOT_USERNAME: mongodb
MONGO_INITDB_ROOT_PASSWORD: riSYinCCinzEzjNA
ports:
- "0.0.0.0:27019:27017"
volumes:
- mongo3-data:/data/db
- ./mongodb-keyfile:/data/keyfile/mongodb-keyfile
command: --replSet rs0 --keyFile /data/keyfile/mongodb-keyfile
networks:
mongo-network:
volumes:
mongo1-data:
mongo2-data:
mongo3-data:创建keyfile
需要再docker compose yaml相同目录下执行
openssl rand -base64 756 > mongodb-keyfile
sudo chmod 600 mongodb-keyfile
sudo chown 999:999 mongodb-keyfile
# 999 可以进到容器里 cat /etc/passwd 查看mongo用户组
sudo cat ./mongo-keyfile
ls -l 查看权限创建容器
docker-compose down -v
docker-compose up -d
docker logs mongo1
docker volume ls初始化
bash
mongosh -u mongodb -p riSYinCCinzEzjNA --authenticationDatabase admin
rs.initiate({
_id: "rs0",
members: [
{ _id: 0, host: "47.121.117.97:27017" },
{ _id: 1, host: "47.121.117.97:27018" },
{ _id: 2, host: "47.121.117.97:27019" }
]
})
rs.status()连接
mongodb://mongodb:riSYinCCinzEzjNA@47.121.117.97:27017/?replicaSet=rs0
xxxsjan Docs