我在windows10家庭版的电脑上安装了docker
准备启动一个mysql服务,下面是我的docker-compose.yml文件
services:
mysql:
image: mysql:5.7
container_name: mysql.service
env_file:
- env_mysql.env
volumes:
- "D:/var/bimserver/data/mysql:/var/lib/mysql"
ports:
- "53306:3306"
然后进入docker-compose.yml文件所在目录通过以下命令启动容器
$ docker-compose.exe up
下面是启动后的打印日志
问题:
通过docker ps可以看到服务是启动的;
但是通过localhost 53306端口连接mysql失败;
cmd下输入命令:netstat -ano|findstr "53306",该端口没有被mysql进程占用;
cmd下输入命令:telnet localhost 53306,端口无法连接!
解决方法:
原来启动docker会自动分配ip,我看官方文档,都是用的localhost访问,可能是安装docker的方式不同。有看到这么一句话(在Windows中,Docker主机地址是Linux VM的地址。当启动docker-machine虚拟机时会被分配一个IP地址。当你启动一个容器,容器的端口会映射到VM)
通过IP地址:192.168.99.100,端口:53306连接mysql成功!
网友评论