Yur*_*rii 8 mysql port database-connection docker
首先我运行mysql镜像:
docker run -e MYSQL_ROOT_PASSWORD=password -d -p 127.0.0.1:3308:3306 mysql
Run Code Online (Sandbox Code Playgroud)
然后我使用容器bash(其中192.168.99.100
是一个由docker本身分配给容器的随机命名):
docker exec -it my_container_name bash
Run Code Online (Sandbox Code Playgroud)
在Bash中我可以通过命令成功连接到MySQL服务器:
mysql -uroot -ppassword
Run Code Online (Sandbox Code Playgroud)
但是当我尝试从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)
Run Code Online (Sandbox Code Playgroud)
如果我docker-machine ip
改为连接(这个ip被返回192.168.99.100
),那么结果是一样的.
问题是:如何正确地将Docker中的MySQL端口暴露给Windows外部?
错误出在原始docker run
命令中的端口映射中,您只需要提供端口,而不是 IP 地址:
docker run -e MYSQL_ROOT_PASSWORD=password -d -p 3308:3306 mysql
Run Code Online (Sandbox Code Playgroud)
您可以运行docker ps -a
以检查正在运行的容器中的端口映射。
您现在应该能够使用连接到 MySQL
mysql -uroot -ppassword -h192.168.99.100 -P3308
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8168 次 |
最近记录: |