【发布时间】:2020-07-30 12:01:27
【问题描述】:
我正在尝试使用其中的集合及其自己的新用户来初始化 Mongodb 数据库。
我已点击以下SO 链接,但无法从主机连接到数据库。
如果我打开 Mongodb Shell,我将无法找到我新创建的数据库和用户。
场景 1
Docker 文件
FROM mongo:latest
ENV MONGO_INITDB_ROOT_USERNAME admin-user
ENV MONGO_INITDB_ROOT_PASSWORD admin-password
ENV MONGO_INITDB_DATABASE admin
ADD mongo-init.js /docker-entrypoint-initdb.d/
mongo-init.js
db.auth('admin-user', 'admin-password')
db = db.getSiblingDB('test-database')
db.createUser({
user: 'test-user',
pwd: 'test-password',
roles: [
{
role: 'readWrite',
db: 'test-database',
},
],
});
db.foo.insert({ x: 1, y: 1 })
我有 linux ubuntu。我使用了以下命令:
docker image build -t image1:1.0 .
docker run -d -p 27017-27019:27017-27019 --name image1 mongo
对于上述情况Neo Anderson 答案完美。现在我有另一个场景:
场景 2:
如果我尝试从容器外部连接我的容器 Mongodb,我将无法连接。无法连接到172.20.1.100:37019。虽然我也将运行命令更改为run -d -p 37017:27017-27019。
【问题讨论】:
-
最好将 docker-compose 与 express 客户端一起使用,而不是维护自己的图像。