【发布时间】:2019-03-11 12:44:37
【问题描述】:
查看 this 和 this 和 this 后,我无法从另一个 docker 连接到 mongo。 这是我的 DockerFile 的一部分:
FROM ubuntu:16.04
...
WORKDIR /code
# Install project requirements
RUN pip3 install -r requirements.pip
ADD . /code
ENTRYPOINT ["/usr/bin/supervisord", "-c", "/code/supervisord.conf"]
在我的电报服务中,我像这样连接到 mongo:
register_connection(
alias='main',
name='new_tetabot',
host='mongo',
port=27017
)
这是我的 docker-compose.yml 文件:
version: '3'
services:
telegram:
hostname: nh-11
build: .
ports:
- "9001:9001"
- "5555:5555"
extra_hosts:
postgresql: 127.0.0.1
mongo: 127.0.0.1
redis: 127.0.0.1
es: 127.0.0.1
broker: 127.0.0.1
volumes:
- /root/telegram_logs:/root/telegram_logs
- /home/crawler/telegram/sessions:/root/crawler/telegram/sessions
- /root/downloads:/root/downloads
- /root/images:/root/images
restart:
always
depends_on:
- mongo
- redis
links:
- mongo
- redis
redis:
image: "redis:latest"
ports:
- "6379:6379"
expose:
- "6379"
mongo:
image: "mongo:4"
ports:
- "27017:27017"
expose:
- "27017"
当我使用docker-compose up 时,我得到Failed to connect to mongo port 27017: Connection refused。但我有从 localhost(docker 外部)到端口 27017 上的 127.0.0.1 的 telnet。
我的 docker-compose 版本是 docker-compose version 1.23.2, build 1110ad01,当我运行 docker-compose up 时,docker ps 的结果是
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
dfa23e7d07dd telegram_telegram "/bin/sh -c 'curl \"m…" 2 minutes ago Restarting (7) 11 seconds ago telegram_telegram_1
74d875f3828c mongo:4 "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 0.0.0.0:27017->27017/tcp telegram_mongo_1
6ee448c1cc30 redis:latest "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 0.0.0.0:6379->6379/tcp telegram_redis_1
【问题讨论】:
-
您的
mongo正在运行,您的连接在哪里?在 docker 服务内部(电报)? -
@ŞivāSankĂr 我已经更新了我的问题。当我执行
supervisor时,我正在电报服务中连接到 mongo 服务器 -
您无法使用
localhost从不同的服务连接,请尝试使用172.17.0.1 -
@ŞivāSankĂr 我试过了。没用
标签: mongodb docker docker-compose