【发布时间】:2019-06-01 14:51:37
【问题描述】:
我无法让 docker-compose 打开端口 27017 或至少允许 rest 与 mongo 建立连接。
无论如何,以下工作就好了:docker run -p 27017:27017 mongo:latest
这是我的docker-compose.yml:
version: '3.5'
services:
mongo:
container_name: mongo
image: mongo:latest
ports:
- "27017:27017"
web:
container_name: web
build:
context: ./src/main/ui/
ports:
- "80:80"
rest:
container_name: rest
links:
- mongo
build:
context: .
ports:
- "8080:8080"
entrypoint: [ "java", "-jar", "/rest/build/libs/pBlog.jar" ]
docker ps 的输出(如您所见,mongo 中关闭了 27017 端口):
▶ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
08f5dfb7acb8 2d8ccd24817e "java -jar /rest/bui…" About an hour ago Up 11 minutes 0.0.0.0:8080->8080/tcp pblog_rest_1
4929257802c5 mongo "docker-entrypoint.s…" 2 hours ago Up 11 minutes 27017/tcp pblog_mongo_1
816a60eb9c7f pblog_web "nginx -g 'daemon of…" 3 days ago Up 11 minutes 0.0.0.0:80->80/tcp pblog_web_1
docker logs <mongoContainerId> 的输出:https://pastebin.com/raw/XZGUh4UC
docker logs <restContainerId> 的输出:https://pastebin.com/raw/F7rwKMCe(无法连接到数据库)
我尝试制作 shell 脚本以在容器内运行 mongo。还尝试将 mongo 服务中的端口部分编辑为"1-65535:1-65535"(这应该打开所有端口) - 也不起作用。删除 ports 部分并添加 expose: - 27017 会得到相同的结果。
似乎 mongo 图像以某种方式迫使 docker 关闭端口。
【问题讨论】:
标签: mongodb docker docker-compose