【发布时间】:2016-10-30 10:51:42
【问题描述】:
我正在使用名为 sqlvm 的旧版虚拟机在本地机器 (Mac) 上工作(意味着我可以通过 http://sqlvm:) 从本地主机访问此 vm。
现在我在应该连接到 vm 的同一本地主机(我的 Mac)中设置了几个 docker 容器(使用 docker-compose)。 pymysql 引发异常:
OperationalError: (OperationalError) (2003, "Can't connect to MySQL server on 'sqlvm' ([Errno -2] Name or service not known)") None None
如何将外部“sqlvm”暴露给内部 docker 网络?
编辑:
我尝试在 yml 文件中为相关容器添加 net: "host"
并得到以下错误(docker-compose up):
ERROR: for defaultworker Cannot create container for service defaultworker: Conflicting options: host type networking can't be used with links. This would result in undefined behavior
我需要容器与“外部”和“内部”网络进行通信..
docker-compose.yml:
recommendation-rabbit:
image: rabbitmq:3-management
hostname: my-rabbit
ports:
- "8080:15672"
- "5672:5672"
command: bash -c "rabbitmq-server start"
defaultworker:
image: rcom-worker
hostname: rcom-worker-host
environment:
- CELERY_BROKER_URL=amqp://user:pass@my-rabbit:5672
command: bash -c "celery worker -A app -l info -Q default -c 2 -n defaultworker -Ofair"
links:
- recommendation-rabbit:rabbit
net: "host"
【问题讨论】:
-
你用的vm是什么网络模式?例如。网桥、主机等
-
我认为它配置为 NAT
-
@GIRISHRAMNANI 你为什么删除你的答案?你能帮忙吗?
-
我删除了答案,因为我要写一个不同的答案,因为现在我有更多信息。但我现在要编辑它。
-
太棒了。乐于助人
标签: networking docker docker-compose