Docker从容器中项目如何访问到宿主机MYSQL
    		       		warning:
    		            这篇文章距离上次修改已过433天,其中的内容可能已经有所变动。
    		        
        		                
                要从Docker容器中访问宿主机上的MySQL服务,您可以通过以下步骤进行:
- 确保宿主机上的MySQL服务正在运行,并且监听在可以从容器访问的网络接口上(一般是localhost或127.0.0.1)。
- 在运行容器时,将MySQL服务的端口映射到容器内部的端口。例如,如果MySQL运行在默认的3306端口,可以使用 - -p参数将该端口映射出来:- docker run -p 3306:3306 [其他参数] [镜像名]
- 在容器内部,连接到MySQL服务使用宿主机的地址host.docker.internal(Docker 18.03及以上版本支持)或者宿主机的网络接口的IP地址(如172.17.0.1,这取决于网络配置)。
以下是一个示例,假设您的宿主机上的MySQL运行在默认端口且可以访问:
- 运行容器并映射端口(假设您已经有一个Docker镜像): - docker run -p 3306:3306 [其他参数] [镜像名]
- 在容器内部,使用如下命令连接MySQL: - mysql -h host.docker.internal -u [用户名] -p[密码]- 或者如果 - host.docker.internal不可用,使用宿主机的IP地址:- mysql -h 172.17.0.1 -u [用户名] -p[密码]
请注意,出于安全考虑,直接将宿主机服务暴露给容器可能是不推荐的做法,特别是当MySQL不是配置为接受来自外部网络的连接时。在生产环境中,您应该考虑使用Docker网络、专用网络或者其他安全措施来隔离容器和宿主机上的服务。
评论已关闭