我正试图用行政芒果访问码头上的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 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
发布于 2019-02-22 11:01:30
我在这里发现了两个问题:
1:仅公开一个端口是不够的。expose
只是文档,您需要将一个端口绑定到主机才能到达。这是怎么做到的:
ports:
- 1234:1234
2:,您必须配置adminmongo
来侦听0.0.0.0
,因为默认情况下,它开始侦听127.0.0.1
,这使得它只能在容器本身内访问。从问题中包含的Configuration部分中可以看出,可以通过传递一个环境变量来实现这一点:
所有这些参数都可以在环境中使用,这使得使用adminMongo作为码头容器非常方便!只需运行
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
发布于 2020-05-03 11:28:01
船坞-撰写作品示例:
version: '3'
services:
server:
container_name: docker_api_web_container
image: docker_api_web
build: .
volumes:
- ./src:/usr/src/node-app/src
- ./package.json:/usr/src/node-app/package.json
environment:
- ENV=DEVELOPMENT
- PORT=4010
ports:
- '9000:4010'
depends_on:
- 'mongo'
mongo:
container_name: docker_mongo_container
image: 'mongo'
ports:
- '27017:27017'
adminmongo:
container_name: docker_adminmongo_container
image: mrvautin/adminmongo
links: ['mongo:mongo']
environment:
- HOST=0.0.0.0
ports:
- '1234:1234'
发布于 2019-02-22 10:47:25
你必须像这样向外界公开你的服务:
version: '3'
services:
mongo:
image: mongo
volumes:
- ~/data:/data/db
restart: always
adminmongo:
image: mrvautin/adminmongo
ports:
- 1234:1234
现在,您可以通过http://localhost:1234访问您的管理员。
您也不必使用链接here.Since compose创建一个网络,并将所有服务连接到复合文件中。您可以使用其他容器的服务名称访问它们。
https://stackoverflow.com/questions/54824984
复制相似问题