解决Mac下 docker 无法 ping 通宿主机的问题
解决方案
抛弃docker for mac自带的linux虚拟机(尽管轻量,但其与OSX通信采用socket文件的方式),使用docker-machine
安装virtualbox。virtualbox创建后,会添加一个虚拟网卡,可以通过ifconfig命令查看。我们实现的方式,就是利用这个虚拟网卡。
使用docker-machine创建默认linux虚拟机,命令docker-machine create
切换docker环境,使用eval $(docker-machine env)命令
查看创建的虚拟机的ip地址:docker-machine ip default或者直接docker-machine ip,假如为192.168.99.100
执行route命令,把192.168.99.100作为网关,将docker容器的ip段,路由到此IP上。假如docker容器的网段为172.17.0.0/16,那么使用sudo route -n add -net 172.17.0.0/16 192.168.99.100命令,添加路由信息。
启动一个docker容器,此次测试使用redis:alpine镜像:docker run -d redis:alpine。查看运行的镜像IP。并ping测试。如无意外,宿机目前可以ping同容器了。
补充:
eval "$(docker-machine env -u)"
它将取消DOCKER_*变量。
为了记录,这是输出docker-machine env -u:
unset DOCKER_TLS_VERIFY unset DOCKER_HOST unset DOCKER_CERT_PATH unset DOCKER_MACHINE_NAME
补充知识:Mac Docker Host模式不能用
今天在Mac搭建docker中安装fastdfs, 用host模式启动tracker与storage, 死活不行。
原来是主机网络驱动程序仅适用于Linux主机,并且不支持Docker for Mac,Docker for Windows或Docker EE for Windows Server。
居然还有这个限制。服了,浪费了一天时间。
以上这篇解决Mac下 docker 无法 ping 通宿主机的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Jenkins Pipeline中Docker镜像构建与推送的常见问题及解决方案
在现代 DevOps 实践中,Jenkins 作为一款流行的持续集成和持续交付(CI/CD)工具,被广泛应用于自动化构建、测试和部署流程,然而,在实际使用 Jenkins Pipeline 进行 Docker 镜像构建和推送的过程中,可能会遇到各种问题,本文将通过一个具体的案例给大家详细的介绍一下2025-01-01
CentOS 7.2 下安装 Docker 1.12.3 版的详细方法
这篇文章主要介绍了CentOS 7.2 安装 Docker 1.12.3 版的相关资料,本文分步骤给大家介绍了CentOS 7.2 下安装 Docker 1.12.3 版的详细方法,需要的朋友可以参考下2016-11-11


最新评论