新手提问:docker创建了ubuntu容器,在此容器内搭建了lnmp环境,但宿主机的navicate连接不了容器内的mysql?

问题背景:
docker运行了一个ubuntu容器,在此容器内搭建了lnmp环境,暴露端口号 33066:3306,8080:80

问题:
宿主机的navicate连接容器内的mysql,一直连接不上。

新手提问:docker创建了ubuntu容器,在此容器内搭建了lnmp环境,但宿主机的navicate连接不了容器内的mysql?

已经尝试的解决方法:
启动了mysql,mysql也开启了远程访问。
容器内部可以ping通宿主机ip。
宿主机添加了route,但仍然不起作用?

真心求教,这种情况,还有什么原因是可能会导致的呢?

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 42
  1. 进到容器里telnet 127.0.0.1 3306不通代表MySQL服务没启动
  2. 宿主机telnet 容器ip 3306代表MySQL不能外部访问
  3. 宿主机telnet 127.0.0.1 33066不通代表端口没映射好

你看在那一步出问题吧

1年前 评论
seth-shi (作者) 1年前
徵羽宫 1年前
seth-shi (作者) 1年前
MuBaiYang (楼主) 1年前
MuBaiYang (楼主) 1年前
seth-shi (作者) 1年前
MuBaiYang (楼主) 1年前
seth-shi (作者) 1年前
MuBaiYang (楼主) 1年前
seth-shi (作者) 1年前
MuBaiYang (楼主) 1年前
seth-shi (作者) 1年前
MuBaiYang (楼主) 1年前
seth-shi (作者) 1年前

你在容器里面能运行mysql,登录进去吗

1年前 评论
MuBaiYang (楼主) 1年前

ip 127.0.0.1

1年前 评论
MuBaiYang (楼主) 1年前

本地和容器的对应端口是什么

1年前 评论
MuBaiYang (楼主) 1年前
cccyzloong (作者) 1年前
MuBaiYang (楼主) 1年前

是不是暴露端口的时候出问题了呀, 8080 可以访问嘛?

1年前 评论
MuBaiYang (楼主) 1年前
sreio

首先你可以把docker run的命令贴出来大家看下

如果端口暴露到宿主机上 ip地址写127.0.0.1就行,

1年前 评论
sreio (作者) 1年前
MuBaiYang (楼主) 1年前
sreio (作者) 1年前

如果我理解没错的话,应该是跟容器同一个network才能用容器ip。宿主机去连容器的话,应该是 localhost:33066 或者 127.0.0.1:33066. 可以尝试一下这样连接,有结果告知一下。

1年前 评论
MuBaiYang (楼主) 1年前

mysql没开远程访问?

1年前 评论
MuBaiYang (楼主) 1年前
Mutoulee

建议你还是用SSH通道连接吧,这样也不用开启远程登录权限。

file

1年前 评论
MuBaiYang (楼主) 1年前
风吹枫落

你确定远程访问设置的对吗,我之前看网上有些教程是错的

1年前 评论

最简单的方法:创建容器的时候添加参数 --network host 然后把端口映射的参数去掉,意思是容器与宿主机不进行网络隔离,这样用起来就像是本地安装一样。

1年前 评论

需要建立network

1年前 评论

登录服务器供应商后台,查看下服务器防火墙规则(或者网络安全组规则设置),看看有没有开放33066端口。

1年前 评论

容器的防火墙 33066 端口开了么

1年前 评论

看样子应该是你 MySQL 服务的绑定地址是 127.0.0.1,这样的话即使做了端口映射,宿主机也无法访问容器内的 MySQL 服务。改为 0.0.0.0 就可以了!

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!