我正在尝试使用 adminmongo 在 docker 上访问我的 mongo 数据库.
这是我的 docker-compose.yml
version: '3'
services:
mongo:
image: mongo
volumes:
- ~/data:/data/db
restart: always
expose:
- 6016
adminmongo:
image: mrvautin/adminmongo
expose:
- 1234
links:
- mongo:mongo
当我执行 docker-compose up
时一切正常,adminmongo 也返回给我:adminmongo_1_544d9a6f954c | adminMongo 监听主机:http://localhost:1234
但是当我转到 localhost:1234
时,我的导航器告诉我这个页面不存在。
这是 docker ps
返回给我的内容:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9c27d4a89254 mrvautin/adminmongo "/bin/sh -c 'node ap…" 38 seconds ago Up 33 seconds 1234/tcp iris_adminmongo_1_544d9a6f954c
2a7496a8c56a mongo "docker-entrypoint.s…" 40 minutes ago Up 38 seconds 6016/tcp, 27017/tcp iris_mongo_1_7f00356a3adc
最佳答案
我在这里发现了 2 个问题:
1st: 公开一个端口是不够的。 expose
只是文档,您需要publish
(绑定(bind))一个端口到主机才能访问。这是如何完成的:
ports:
- 1234:1234
第二:您必须配置 adminmongo
来监听 0.0.0.0
因为默认情况下它开始监听 127.0.0.1
这使得它只能在容器内部访问。来自documentation page你已经包含在你的问题中,Configuration 部分声明这可以通过传递环境变量来完成:
All above parameters are usable through the environment which makes it very handy to when using adminMongo as a docker container! just run
docker run -e HOST=yourchoice -e PORT=1234 ...
由于您使用的是 docker-compose
,因此可以通过以下方式完成:
environment:
- HOST=0.0.0.0
工作示例:
version: '3'
services:
mongo:
image: mongo
volumes:
- ~/data:/data/db
restart: always
expose:
- 6016
adminmongo:
image: mrvautin/adminmongo
ports:
- 1234:1234
environment:
- HOST=0.0.0.0
关于mongodb - 带有 docker-compose 的 AdminMongo 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54824984/