首先我運行mysql圖像:無法連接到MySQL服務器內的碼頭工人
docker run -e MYSQL_ROOT_PASSWORD=password -d -p 127.0.0.1:3308:3306 mysql
然後我用容器的bash(其中big_golick
是一個隨機命名的碼頭工人本身分配給容器):
docker exec -it big_golick bash
在Bash中,我可以通過命令成功連接到MySQL服務器:
mysql -uroot -ppassword
但是當我嘗試c ONNECT從Windows CMD MySQL的容器:
mysql -uroot -ppassword -h127.0.0.1 -P3308
ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (10061)
如果我連接到192.168.99.100
而不是(這個IP是docker-machine ip
返回),那麼結果是一樣的。
現在的問題是:如何正確地將Docker內部的MySQL端口暴露給外部Windows?
如果您使用泊塢窗機連接到MySQL,你必須使用泊塢窗機虛擬機的IP地址,而不是127.0.0.1的:'MySQL的-uroot -ppassword -h192.168.99.100 -P3308'。 192.168.99.100通常是Docker Machine VM的IP。 – nwinkler
nwinkler確實,192.168.99.100是返回docker-machine ip命令。但它取代ip並沒有幫助 – Yurii
你可以運行docker ps -a來檢查端口映射是否設置正確嗎? – nwinkler