我是靠谱客的博主 彩色手机,最近开发中收集的这篇文章主要介绍docker容器内访问外部mysql_docker容器内访问宿主机127.0.0.1服务,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

点击上方”技术生活“,选择“设为星标”

做积极的人,而不是积极废人

  • 背景

  • 原因分析

  • 解决方案

背景


        已经通过docker启动的elasticsearch 服务,监听端口9200。在宿主机中直接通过http://127.0.0.1:9200 可以直接访问,但是通过docker访问缺不行,访问url:http://127.0.0.1:9200 或者http://localhost:9200

原因分析


    docker是一个虚拟环境,127.0.0.1和localhost指的是虚拟环境内部,而不是外部宿主机,所以无法这样访问.

解决方案


   1、 对于mac和windows,可以使用host.docker.internal替换127.0.0.1,如http://host.docker.internal:9200 (亲测好使)

    2、对于Linux可以采用如下方案

            创建一个桥接网络

            下面的localNet是网络名字,可自行修改;关于192.168.0.0这个子网,也可以自行定义.

 默认按照下面的命令,执行后将可以通过192.168.0.1访问宿主机.

docker network create -d bridge --subnet 192.168.0.0/24 --gateway 192.168.0.1 localNet

使用192.168.0.1替换127.0.0.1,如http://192.168.0.1:9200

35b38feb1da92e9d133494b031a77bb7.png

如果你喜欢这篇文章,喜欢,转发。

幸福生活很美好,也可以点下在看

明天见(。・ω・。)ノ♡

最后

以上就是彩色手机为你收集整理的docker容器内访问外部mysql_docker容器内访问宿主机127.0.0.1服务的全部内容,希望文章能够帮你解决docker容器内访问外部mysql_docker容器内访问宿主机127.0.0.1服务所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(31)

评论列表共有 0 条评论

立即
投稿
返回
顶部