docker容器正常启动,宿主机器无法访问启动的服务,对应的主机端口无法连接

我在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成功!

你可能感兴趣的:(docker容器正常启动,宿主机器无法访问启动的服务,对应的主机端口无法连接)