问题

服务部署于docker容器中,而MongoDB部署在宿主机,在docker容器中访问mongodb://localhost:27017会返回TimedOut

分析

容器与宿主机之间的连接有bridge和host,默认是bridge,也可以是none。
当连接模式为bridge时,docker通过docker0虚拟网桥与宿主机连接。
bridge 对宿主机来讲相当于一个单独的网卡设备 对于运行在宿主机上的每个容器来说相当于一个交换机,所有容器的虚拟网线的一端都连接到docker0上。

通常,面对这种情况可以创建自定义网络来解决。但是,如非复杂的需求,创建自定义网络并非最优解。

另一种连接方式host则会与宿主机共用网络。换而言之,容器可以任意访问宿主机本地换回端口,宿主机也可以任意访问容器开放的端口。当然,带来的弊端是容器开放的端口不能与宿主机冲突。
只要将连接方式改为host,便可以实现容器与宿主机MongoDB的连接。

解决

docker: 命令加入*–net=host*参数;

docker-compose: 在docker-compose.yaml中加入network_mode: host。

参考

  • Docker网络:bridge桥接模式 - Free AI-Hub

  • Docker 初探Docker的网络模式之host模式 - 富士康质检员张全蛋 - CSDN博客

docker与宿主机通信相关推荐

  1. docker与宿主机共享内存通信

    docker与宿主机共享内存通信 docker中的进程要与宿主机使用共享内存通信,需要在启动容器的时候指定"–ipc=host"选项.然后再编写相应的共享内存的程序,一个跑在宿主机 ...

  2. Docker学习:跨宿主机通信 | overlay和macvlay(理论+实战篇)

    前言 本讲是从Docker系列讲解课程,单独抽离出来的一个小节,带你一起 深入了解在编排工具出现前,跨宿主机通信的两大得力干将overlay.macvlay,这也会后期学好K8s做好基本功铺垫,打下一 ...

  3. 记录一次docker导致宿主机重启故障解决方法

    记录一次docker导致宿主机重启故障解决方法 参考文章: (1)记录一次docker导致宿主机重启故障解决方法 (2)https://www.cnblogs.com/caidingyu/p/1215 ...

  4. docker导致宿主机重启和Cgroup 驱动程序有关

    现象 某个宿主机突然登录不上了,重启后查看系统日志/var/log/messages和下面的日志类似 Jan 5 15:50:01 hanginx01 systemd: Started Session ...

  5. docker 连接宿主机的 MySQL

    docker 连接宿主机的 MySQL 本文地址:https://blog.lucien.ink/archives/505 在实际生产过程中,docker 内的服务有时需要连接宿主机的 MySQL,在 ...

  6. CentOS安装etcd和flannel实现Docker跨物理机通信

    1.安装etcd yum install etcdsystemctl stop etcd systemctl start etcd systemctl status etcd 查看etcd是否启动成功 ...

  7. mac for docker访问宿主机服务

    pod访问mac主机网络 Docker For Mac的Docker Daemon是运行于虚拟机(xhyve)中的, 而不是像Linux上那样作为进程运行于宿主机,因此Docker For Mac没有 ...

  8. docker 导致宿主机重启的解决方法

    宿主机操作系统为centos 7.4 在k8s运行一段时间报错: containerd: time="2019-12-19T21:50:49.070815105Z" level=i ...

  9. docker使用宿主机代理

    docker run -it --network=host --name="Host-Proxy-Test" ubuntu:16.04export ALL_PROXY='socks ...

  10. docker需要linux内核版本,docker与宿主机内核版本

    1. 楼主的问题1我也产生过,虽然问法不一样,起初我也是想,如果就是运行在centos的服务器上,是否还需要FROM cetnos.但是既然所有书上一开始都说了要pull centos(ubuntu) ...

最新文章

  1. 【ACM】杭电OJ 1005
  2. 事件响应政策制定常见雷区,都踩了我就只能祝福你了……
  3. position_css
  4. css属性中如果后面个三个值,那么中间的那个一般代表左右元素的值。
  5. Java通过反射获取类的私有属性和方法
  6. win7西捷硬盘测试软件,Seagate希捷SeaTools硬盘检测工具
  7. 功能测试--分享功能测试
  8. ERP与MBA的关系
  9. 准备搞个google play账号玩玩
  10. facebook大数据搜索库faiss使用——选择Index
  11. 两个向量组的秩相等说明什么_若两个向量组等价,它们的秩是否相等?
  12. 哥,8年不见,您啥时候回来?度娘想死您了!
  13. LinuxGit Accumulation
  14. mavens使用阿里云国内私服下载
  15. NOTES邮箱打不开,提示打开的文件出错(打开的文件时出错)。
  16. 2016.11.18多态
  17. 武汉大学计算机学院 教师名录,韩镇副教授-教师名录-国家多媒体软件工程技术研究中心...
  18. 与第三方进行联调测试,对方将JSON形式的参数放到params中,接收请求后获取参数值为null
  19. 最新版红雪越狱iOS 6(iPhone 4)教程
  20. 关于STM32F030的48MHz时钟配置(详细)

热门文章

  1. android 平板 不支持apk,平板电脑上怎么无法打开apk文件
  2. photoshop合并图层:向下合并、合并选中层、合并可见图层、拼合图像操作
  3. 关于JavaScript中万恶的this
  4. PTA——21级数据结构与算法实验3——栈和队列(参考答案)
  5. 很多人在Google Play商店购买或下载APP时出现问题,例如在你新安装的系统恢复APP或想要安装心愿单中的APP时,Play商店出现不能加载等错误,这实在是太烦人了。 所以,我通过搜索,把可
  6. [Erlang]AC自动机过滤屏蔽词
  7. IPFS时代来临,FIL WORLD重赋存储灵魂
  8. sleep、yield、join方法简介与用法 sleep与wait区别 多线程中篇(十五)
  9. c语言围棋报告,C++围棋程序实现报告.doc
  10. opqcp c语言代码混淆器 error