Cra*_*zit 3 mongodb docker docker-compose
我正在尝试使用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
Run Code Online (Sandbox Code Playgroud)
当我做一个docker-compose up一切正常时,adminmongo 也返回给我这个:adminmongo_1_544d9a6f954c | adminMongo listening on host: 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
Run Code Online (Sandbox Code Playgroud)
我在这里发现了两个问题:
第一:公开端口是不够的。expose只是文档,您需要publish(绑定)一个端口到主机才能访问。这是它的完成方式:
ports:
- 1234:1234
Run Code Online (Sandbox Code Playgroud)
第二:你必须配置adminmongo监听,0.0.0.0因为默认情况下它开始监听127.0.0.1,这使得它只能在容器内部访问。从您在问题中包含的文档页面中,配置部分指出这可以通过传递环境变量来完成:
以上所有参数都可以通过环境使用,这使得在使用 adminMongo 作为 docker 容器时非常方便!赶紧跑
docker run -e HOST=yourchoice -e PORT=1234 ...
由于您正在使用docker-compose,这是通过以下方式完成的:
environment:
- HOST=0.0.0.0
Run Code Online (Sandbox Code Playgroud)
工作示例:
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1959 次 |
| 最近记录: |