Docker 容器内运行的服务(如 MongoDB)通常以特定的用户和组运行。在官方 MongoDB Docker 镜像中,默认的用户和组都是 mongodb
,其 UID 和 GID 通常是 999
。你可以通过以下步骤来确认和检查 Docker 容器内的用户和组信息。
检查官方 MongoDB 镜像中的用户和组
-
启动一个临时的 MongoDB 容器:
启动一个 MongoDB 容器并进入其 shell:
docker run -it --rm mongo:latest bash
-
检查用户和组信息:
在容器内运行以下命令以查看 MongoDB 用户和组信息:
id mongodb
或者查看
/etc/passwd
文件:grep mongodb /etc/passwd
你会看到类似的输出:
mongodb:x:999:999::/home/mongodb:/bin/bash
这表明
mongodb
用户的 UID 和 GID 都是999
。
设置 mongodb.key
文件的权限和所有者
-
设置文件权限:
确保
mongodb.key
文件的权限为600
:chmod 600 ./mongodb.key
-
设置文件所有者:
将文件所有者设置为
999
(或你在上一步检查到的用户 ID 和组 ID):sudo chown 999:999 ./mongodb.key
使用 Docker Compose 配置 MongoDB
创建或编辑 docker-compose.yml
文件,确保挂载 mongodb.key
文件,并正确配置 MongoDB 服务:
version: '3.8'
services:
mongo:
image: mongo:latest
container_name: mongo
volumes:
- ./data/db:/data/db
- ./data/configdb:/data/configdb
- ./mongodb.key:/etc/mongodb.key
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: example
command: mongod --keyFile /etc/mongodb.key --replSet rs0
ports:
- 27017:27017
启动 MongoDB 容器
使用 Docker Compose 启动 MongoDB 容器:
docker-compose up -d
检查容器日志
如果容器仍无法启动,请查看容器日志以获取错误信息:
docker logs mongo
通过这些步骤,你应该能够正确配置 mongodb.key
文件的权限和所有者,以确保 MongoDB 容器能够正常启动并访问该文件。
已有 0 条评论