如图
这里设置的应该是,将容器的3306映射到主机的3366上,但是我只能通过192.168.99.100:3366来连接容器内的mysql服务
我宿主机的真实ip是10.0.0.2
但是我通过10.0.0.2:3366却连接不上,求大神指点一下
習慣沉默2017-04-25 09:03:33
질문에 직접 대답하려면:
호스트 IP 대신 192.168.99.100:3366
을 사용하여 컨테이너에 액세스해야 하는 이유: 10.0.0.2
는 Toolbox
을 사용했으며 기본적으로 Toolbox
이 사용됩니다. Virtualbox
가상 머신에는 추가 레이어가 있습니다.
사진 설명:
@Youming님 말씀이 맞습니다. Mac용 Docker를 사용하는 것이 좋습니다. Toolbox
는 점차 폐기될 예정입니다.
曾经蜡笔没有小新2017-04-25 09:03:33
컨테이너에서 연결을 시도할 수 있나요? 기본적으로 mysql 구성은 IP 주소 127.0.0.1에만 연결할 수 있습니다.
怪我咯2017-04-25 09:03:33
몇 가지 아이디어 제공:
먼저 포트 3306을 통해 각 IP에서 mysql 서비스의 서비스 상태를 테스트합니다. 예:
텔넷에서 포트가 열려 있음을 발견하면 mysql 설정, 즉 다른 IP 주소를 가진 mysql 클라이언트의 액세스가 허용되는지 확인하세요.
我想大声告诉你2017-04-25 09:03:33
지금은 왜 Toolbox 버전의 Docker를 사용하시나요? 최신 버전의 Mac용 Docker를 직접 사용한다면 문제가 되지 않을 것입니다...
Docker는 실제로 Mac 시스템의 Linux 가상 머신에서 실행됩니다. Docker의 Toolbox 버전은 VirtualBox를 가상 머신으로 사용합니다. 이는 Docker가 매핑할 수 있지만 애플리케이션에서 제공하는 인터페이스가 제한되어 있기 때문입니다. 포트를 가상 머신에 연결하지만 가상 머신의 포트를 호스트에 매핑할 수 없습니다. 이 매핑을 수행하려면 VirtualBox에서 포트 매핑을 수동으로 수행해야 합니다.
Mac용 Docker의 새 버전은 xhyve를 가상 머신 공급자로 사용합니다. Mac 시스템의 기본 지원으로 인해 Mac용 Docker는 가상 머신과 호스트 간의 포트 매핑을 자동으로 완료할 수도 있습니다. . 따라서 Mac용 Docker의 새 버전에서는 가상 머신을 호스트 포트에 수동으로 매핑할 필요가 없습니다. 로컬 포트 127.0.0.1을 사용하여 바인딩된 컨테이너에 직접 액세스할 수 있습니다.