docker无法通过宿主ip访问容器中的mysql
过去多啦不再A梦
过去多啦不再A梦 2017-04-25 09:01:33
0
7
1645

如图

这里设置的应该是,将容器的3306映射到主机的3366上,但是我只能通过192.168.99.100:3366来连接容器内的mysql服务

我宿主机的真实ip是10.0.0.2

但是我通过10.0.0.2:3366却连接不上,求大神指点一下

过去多啦不再A梦
过去多啦不再A梦

모든 응답(7)
習慣沉默

질문에 직접 대답하려면:
호스트 IP 대신 192.168.99.100:3366을 사용하여 컨테이너에 액세스해야 하는 이유: 10.0.0.2Toolbox을 사용했으며 기본적으로 Toolbox이 사용됩니다. Virtualbox 가상 머신에는 추가 레이어가 있습니다.

사진 설명:

@Youming님 말씀이 맞습니다. Mac용 Docker를 사용하는 것이 좋습니다. Toolbox는 점차 폐기될 예정입니다.

我想大声告诉你

방화벽을 꺼보세요

曾经蜡笔没有小新

컨테이너에서 연결을 시도할 수 있나요? 기본적으로 mysql 구성은 IP 주소 127.0.0.1에만 연결할 수 있습니다.

刘奇

몇 가지 아이디어 제공:

  • 먼저 포트 3306을 통해 각 IP에서 mysql 서비스의 서비스 상태를 테스트합니다. 예:

으아아아
  • 텔넷에서 포트가 열려 있음을 발견하면 mysql 설정, 즉 다른 IP 주소를 가진 mysql 클라이언트의 액세스가 허용되는지 확인하세요.

PHPzhong

도커 컨테이너의 네트워크 세그먼트를 방화벽에 추가하려면 호스트에 대한 액세스를 허용하세요

洪涛

iptables -F

我想大声告诉你

지금은 왜 Toolbox 버전의 Docker를 사용하시나요? 최신 버전의 Mac용 Docker를 직접 사용한다면 문제가 되지 않을 것입니다...

Docker는 실제로 Mac 시스템의 Linux 가상 머신에서 실행됩니다. Docker의 Toolbox 버전은 VirtualBox를 가상 머신으로 사용합니다. 이는 Docker가 매핑할 수 있지만 애플리케이션에서 제공하는 인터페이스가 제한되어 있기 때문입니다. 포트를 가상 머신에 연결하지만 가상 머신의 포트를 호스트에 매핑할 수 없습니다. 이 매핑을 수행하려면 VirtualBox에서 포트 매핑을 수동으로 수행해야 합니다.

Mac용 Docker의 새 버전은 xhyve를 가상 머신 공급자로 사용합니다. Mac 시스템의 기본 지원으로 인해 Mac용 Docker는 가상 머신과 호스트 간의 포트 매핑을 자동으로 완료할 수도 있습니다. . 따라서 Mac용 Docker의 새 버전에서는 가상 머신을 호스트 포트에 수동으로 매핑할 필요가 없습니다. 로컬 포트 ​​127.0.0.1을 사용하여 바인딩된 컨테이너에 직접 액세스할 수 있습니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿