首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker无法连接到网桥接口上的容器

问Docker无法连接到网桥接口上的容器
EN

Stack Overflow用户
提问于 2017-09-26 07:56:28
回答 1查看 1.4K关注 0票数 0

我正在尝试设置一个合成文件来支持遗留应用程序。所述传统应用程序需要连接到最多3个DB (MySQL)。问题是我不能更改端口规范。我的意思是,我可能可以,但我们希望在不更改任何代码的情况下将所有内容容器化。

当我在我的一个容器上运行docker inspect时,我得到:

代码语言:javascript
复制
 "IPAddress": "172.18.0.2",

这很好。但是,当我尝试从我的MAC连接时,我得到超时。在过去,我不得不这样做一个网络别名:

代码语言:javascript
复制
sudo ifconfig lo0 alias 10.200.10.1/24

但是,这似乎没有帮助

代码语言:javascript
复制
$ docker -v
Docker version 17.06.2-ce, build cec0b72

mac:

代码语言:javascript
复制
$ uname -a
Darwin wa-cbongiorno-mba.local 16.7.0 Darwin Kernel Version 16.7.0: Thu Jun 15 17:36:27 PDT 2017; root:xnu-3789.70.16~2/RELEASE_X86_64 x86_64

下面是我正在使用的撰写文件:

代码语言:javascript
复制
version: '3.3'
services:
  db1:
    image: mysql:5.6
    ports:
      - 3306
    environment:
      - MYSQL_ROOT_PASSWORD=my-secret-pw
    volumes:
      - ./Schema/db1:/docker-entrypoint-initdb.d/:ro
  db2:
    image: mysql:5.6
    ports:
      - 3306
    environment:
      - MYSQL_ROOT_PASSWORD=my-secret-pw
    volumes:
      - ./Schema/db2:/docker-entrypoint-initdb.d/:ro
EN

回答 1

Stack Overflow用户

发布于 2017-09-26 19:28:25

如果你阅读documentation,这在mac上是不可能的。

已知的限制、用例和解决方法

以下是Docker for Mac网络堆栈的当前限制的摘要,以及一些解决方法的想法。

macOS上没有docker0网桥

由于在Docker for Mac中实现网络的方式,您在macOS中看不到docker0接口。这个接口实际上在HyperKit中。

我无法ping我的容器

不幸的是,由于macOS的限制,我们无法将流量路由到容器,并从容器返回主机。

不能按容器进行IP寻址

无法从macOS主机访问docker (Linux)网桥网络。

用例和变通方法

上述限制将影响以下两种情况:

我想从一个容器连接到主机上的一个服务

Mac有一个不断变化的IP地址(如果您没有网络访问权限,则没有IP地址)。从17.06开始,我们的建议是连接到特殊的Mac-only DNS名称docker.for.mac.localhost,它将解析为主机使用的内部IP地址。

我想从MAC连接到一个容器

端口转发适用于本地主机;--publish、-p或-P都适用。从Linux公开的端口被转发到Mac。

我们当前的建议是发布一个端口,或者从另一个容器连接。请注意,即使在Linux上,如果容器位于覆盖网络上,而不是桥接网络上,这也是您必须做的,因为它们不是路由的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46415833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档