欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 名人名企 > mac系统docker默认不支持host主机网络模式

mac系统docker默认不支持host主机网络模式

2024/10/24 14:16:16 来源:https://blog.csdn.net/u011089760/article/details/140078578  浏览:    关键词:mac系统docker默认不支持host主机网络模式

环境描述:在mac系统上安装docker及docker-compose服务,并且打算搭建一个redis集群

问题描述:mac默认不支持host网络模式,导致集群无法通过外部主机访问

具体验证步骤:

docker-compose.yml如下:

version: '3.8'services:master1:container_name: master1image: redisvolumes:- ./master1/conf:/usr/local/etc/rediscommand: ["redis-server", "/usr/local/etc/redis/redis.conf"]network_mode: host

conf配置文件如下:

port 6380# 开启集群功能
cluster-enabled yes
# 集群的配置文件名称,不需要我们创建,由redis自己维护
cluster-config-file /data/nodes.conf
# 节点心跳失败的超时时间
cluster-node-timeout 5000
# 持久化文件存放目录
dir /data
# 绑定地址
bind 0.0.0.0
# 让redis后台运行
daemonize no
# 保护模式
protected-mode no
# 数据库数量
databases 1
# 日志
logfile /data/run.logloglevel notice

使用docker-compose up -d 启动redis容器,并查看如下

 redis-cluster-host % docker ps |grep master1
7e69b709ffae   redis     "docker-entrypoint.s…"   7 seconds ago   Up 6 seconds             master1

进入容器中,使用命令查看redis连接正常:

redis-cluster-host % docker exec -it master1 bashroot@docker-desktop:/data# redis-cli -h 127.0.0.1 -p 6380 cluster nodes
3f98bb4d73ef44b6cd9daf40b1945ffa430fe798 :6380@16380 myself,master - 0 0 0 connected

mac上使用工具连接redis测试:

使用natstat:(宿主机上也没有看到端口监听占用)

netstat -nat |grep 6380

结论及现象:mac主机无法访问host模式下的redis服务

问题定位及解决方式:

访问docker官网查看host网络描述如下:

主机网络驱动程序仅适用于 Linux 主机,但在 Docker Desktop 4.29 及更高版本上作为 Beta 功能提供。

参考链接:主机网络驱动程序| Docker 文档

 解决方式:

方式一:启动mac docker desktop的host networking

查看docker desktop的网络配置如下:

 确实host networking没有打开,而且这个模式需要sign in才能打开

方式二:使用linux docker部署

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com