docker 容器无法通过 IP 访问宿主机

这篇具有很好参考价值的文章主要介绍了docker 容器无法通过 IP 访问宿主机。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题:

一次部署项目过程中,将Java项目与中间件服务部署在同一远程机器上,出现连接不上中间件服务的问题,而项目在本地运行时是可以连接的,没有问题。

原因:

这是因为项目与服务都是通过docker容器运行的,而docker 容器无法通过 IP 访问宿主机(貌似高版本解决了这个问题),所以导致部署到同一机器后出现问题

解决:

一、Docker社区有提过该问题已被解决,链接在这

二、也可以通过在容器运行时 加参数--net=host,这个命令让容器与宿主机共享网络命名空间,这样容器就可以直接使用宿主机的IP地址进行访问,但该方案局限性在于只能有一个容器使用--net=host参数。

三、若想同时运行多个容器并使它们可以通过IP访问宿主机,可以采用桥接网络模式,步骤如下:

1.创建Docker网络:
运行下面的命令来创建一个桥接网络:

docker network create --driver bridge mynetwork

这将创建一个名为mynetwork的桥接网络,用于连接宿主机和容器。

2.运行容器并指定网络:
在启动容器时,使用 --network 参数并指定之前创建的桥接网络:

docker run --network=mynetwork <image_name>

<image_name>是你要运行的容器镜像的名称。运行该命令后,容器将与mynetwork网络连接。

3.在容器中访问宿主机:
在容器内部,可以使用宿主机的IP地址进行访问。宿主机的IP地址通常是桥接网络的网关地址。

运行下面的命令来查看桥接网络的网关地址:

docker network inspect mynetwork

在输出中,找到"Gateway": "<gateway_ip>",记录下<gateway_ip>的值。

在容器内部,可以使用 <gateway_ip> 来访问宿主机上的服务或应用程序。

现在,你的容器应该能够通过桥接网络访问宿主机了。你可以在容器内部使用宿主机的IP地址(即桥接网络的网关地址)来访问宿主机上的服务或应用程序。文章来源地址https://www.toymoban.com/news/detail-704884.html

到了这里,关于docker 容器无法通过 IP 访问宿主机的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 解决docker通过volumes挂载文件,宿主机修改后容器内不同步,重启服务才能同步

    将文件的权限改为777,即 chmod 777 filename 。 详细解释在该文章: https://huaweicloud.csdn.net/633114e5d3efff3090b51a5a.html 说明: 这是由于linux系统文件挂载机制导致的。 docker通过volumes挂载文件到容器中,有以下两种方式: 1、挂载目录 2、挂载具体文件:并不是挂载了某个文件的路径,

    2024年03月10日
    浏览(86)
  • Docker】容器里面拷文件到宿主机[或]宿主机拷文件到容器里面

    【Docker】容器里面拷文件到宿主机[或]宿主机拷文件到容器里面 - 知乎 答:在宿主机里面执行以下命令 docker cp 容器名:要拷贝的文件在容器里面的路径 要拷贝到宿主机的相应路径 示例: 假设容器名为webnphp,要从容器里面拷贝的文件路为: 现在要将tox.ini从容器里面拷到宿主

    2024年02月06日
    浏览(61)
  • 【Docker】docker容器内获取宿主机的信息和执行宿主机的脚本

    我们可以通过在容器内远程连接宿主机,然后对宿主机进行操作。 注意: 要先安装 sshpass命令才行。 Dockerfile文件可以在你部署容器的时候自动安装。 docker部署springboot项目

    2024年02月11日
    浏览(63)
  • docker 容器与宿主机时间同步

    1.docker run 2.Docker file 3.docker-compose 4.宿主机直接执行命令给某个容器同步时间 注意:这种方式需要重启容器 docker exec -it 70ec41893d66 /bin/bash 回车后输入date验证即可

    2024年02月08日
    浏览(54)
  • Docker容器内执行宿主机指令

            最近项目有个需求,需要程序配置服务器IP并且可以重启服务器。如果程序直接部署在服务器,相信大家都会操作。但是程序是用docker运行的,在docker中执行指令就很麻烦了。这时候需要添加容器一些特殊的权限和执行一些特殊的命令就可以执行宿主机上面的指令

    2024年02月09日
    浏览(56)
  • Jenkins容器使用宿主机Docker

    构建镜像和发布镜像到harbor都需要使用到docker命令。而在Jenkins容器内部安装Docker官方推荐直接采用宿主机带的Docker即可。 设置Jenkins容器使用宿主机Docker 设置宿主机docker.sock权限: 添加数据卷

    2024年01月18日
    浏览(50)
  • docker容器共享宿主机环境(目录挂载)

    一、背景介绍 如果开发的服务均需要将打成docker镜像,可是随着服务越来越多,镜像也越来越多。每次制作镜像的时候都需要将依赖打进容器,这样一个jre的环境就是100多M。有一天突发奇想,容器能不能共用宿主机的环境?这样每次打镜像时体积就会少不少。 二、测试 我们

    2024年02月09日
    浏览(61)
  • Docker第一讲 Docker容器间/容器与宿主机ping不通解决

    通过容器ip访问 容器重启后,ip会发生变化。通过容器ip访问不是一个好的方案。 通过宿主机的ip:port访问 通过宿主机的ip:port访问,只能依靠监听在暴露出的端口的进程来进行有限的通信。 通过link建立连接(官方不推荐使用) 运行容器时,指定参数link,使得源容器与被链接

    2024年02月11日
    浏览(48)
  • 【Docker小知识】(1)宿主机和容器的文件拷贝

            docker cp 命令用于在本地文件系统与  Dokcer容器  之间复制文件或者文件夹。该命令后面的 CONTAINER 可以是容器Id,或者是容器名。         宿主机是容器的托管环境,容器运行在宿主机上。容器的创建、启动、停止、销毁等操作都是在宿主机上进行的。     

    2024年02月11日
    浏览(44)
  • 最简单配置jenkins容器使用宿主机的docker方法

    构建镜像和发布镜像到harbor都需要使用到docker命令。而在Jenkins容器内部安装Docker官方推荐直接采用宿主机带的Docker即可 设置宿主机docker.sock权限 chown root:root /var/run/docker.sock chmod o+rw /var/run/docker.sock 添加数据卷 version: \\\"3.1\\\" services:   jenkins:     image: jenkins/jenkins     container_na

    2024年02月11日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包