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部署

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/38017.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

reactor网络模型的原理与实现

一、rector网络模型 对高并发编程,网络连接上的消息处理,可以分为两个阶段:等待消息准备好、消息处理。当使用默认的阻塞套接字时,往往是把这两个阶段合而为一,这样操作套接字的代码所在的线程就得睡眠来等待消息准备好…

Mysql常用SQL:日期转换成周_DAYOFWEEK(date)

有时候需要将查询出来的日期转换成周几,Mysql本身语法就是支持这种转换的,就是DAYOFWEEK()函数 语法格式:DAYOFWEEK(date) (date:可以是指定的具体日期( 如2024-06-29 ),也可以是日期…

ubuntu中安装pycharm并设置图标

下载并解压 下载PyCharm:从JetBrains官网下载PyCharm的tar.gz文件。 地址:PyCharm:适用于数据科学和 Web 开发的 Python IDE (jetbrains.com) 解压文件:使用以下命令解压下载的文件: tar xvf pycharm-community-*.tar…

JAVA学习-练习试用Java实现“2 的幂”

问题: 给定一个整数 n,请判断该整数是否是 2 的幂次方。如果是,返回 true ;否则,返回 false 。 如果存在一个整数 x 使得 n 2x ,则认为 n 是 2 的幂次方。 示例 1: 输入:n 1 输…

为什么word生成的PDF内容显示不全?

在现代办公环境中,将文档从一个格式转换为另一个格式是一个常见的任务。然而,有时候我们可能会遇到意想不到的问题,比如使用Word转换成PDF时,生成的PDF文件只显示了整个界面的四分之一内容。这种问题不仅令人困扰,也可…

重温react-05(类组件生命周期和性能优化)

类组件的生命周期 import React, { Component } from reactexport default class learnReact05 extends Component {state {number: 1}render() {return (<div>{this.state.number}</div>)}// 一般将请求的方法,放在这个生命周期componentDidMount() {setInterva…

斜率优化DP——AcWing 303. 运输小猫

斜率优化DP 定义 斜率优化DP&#xff08;Slope Optimization Dynamic Programming&#xff09;是一种高级动态规划技巧&#xff0c;用于优化具有特定形式的状态转移方程。它主要应用于那些状态转移涉及求极值&#xff08;如最小值或最大值&#xff09;的问题中&#xff0c;通…

CesiumJS【Basic】- #028 天空盒

文章目录 天空盒1 目标2 代码2.1 main.ts3 资源天空盒 1 目标 配置显示天空盒 2 代码 2.1 main.ts import * as Cesium from cesium;// 创建 Cesium Viewer 并配置地形数据和天空盒 const viewer = new Cesium.Viewer(

理解抽象工厂设计模式

目录 抽象工厂模式抽象工厂模式结构抽象工厂模式适合应用场景抽象工厂模式优缺点练手题目题目描述输入描述输出描述提示信息题解 抽象工厂模式 抽象工厂模式是一种创建型设计模式&#xff0c; 它能创建一系列相关的对象&#xff0c; 而无需指定其具体类。 抽象工厂模式结构 抽…

自定义一个MyBaits脱敏插件

自定义一个MyBaits脱敏插件 用于对查询结果中的敏感数据进行脱敏处理。这个插件将拦截ResultSetHandler对象的处理结果&#xff0c;对某些敏感字段进行脱敏。 插件实现步骤 创建脱敏插件类。注册插件。 1. 创建脱敏插件类 首先&#xff0c;我们创建一个自定义插件类 DataM…

《每天5分钟用Flask搭建一个管理系统》 第7章:用户认证

第7章&#xff1a;用户认证 7.1 用户认证的重要性 用户认证是确定用户身份的过程&#xff0c;它是任何需要用户登录的应用的关键部分。认证确保只有经过验证的用户才能访问受限资源。 7.2 Flask-Login扩展的使用 Flask-Login提供了用户会话管理的简单方法。它处理用户登录和…

AI在未来战争的应用

AI在未来战争中的应用将会非常广泛&#xff0c;其潜力巨大&#xff0c;可能会深刻改变战争的基本形态、作战方式和制胜机理。接下来介绍一些AI在未来战争中的可能应用&#xff0c;并基于最新科技新闻列出一些案例。 文章目录 Part1 战场感知与态势分析Part2 作战方案规划与决策…

深入理解策略梯度算法

策略梯度&#xff08;Policy Gradient&#xff09;算法是强化学习中的一种重要方法&#xff0c;通过优化策略以获得最大回报。本文将详细介绍策略梯度算法的基本原理&#xff0c;推导其数学公式&#xff0c;并提供具体的例子来指导其实现。 策略梯度算法的基本概念 在强化学习…

【Python3的内置函数和使用方法】

目录 Python 特点 Python 中文编码 Python 变量类型 Python列表 Python 元组 元组是另一个数据类型&#xff0c;类似于 List&#xff08;列表&#xff09; Python 字典 Python数据类型转换 Python 运算符 Python算术运算符 Python比较运算符 Python赋值运算符 Pyt…

(笔记)CentOS7上安装neovim

sudo yum install epel-release sudo yum install snapd sudo systemctl enable --now snapd.socket sudo ln -s /var/lib/snapd/snap /snap sudo snap install nvim --classic nvim ok&#xff0c;搞定 如果之前用yum安装了旧版本的neovim往下看&#xff08;之前没有安装…

一篇就够了,为你答疑解惑:锂电池一阶模型-离线参数辨识(附代码)

锂电池一阶模型-参数离线辨识 背景模型简介数据收集1. 最大可用容量实验2. 开路电压实验3. 混合动力脉冲特性实验离线辨识对应模型对应代码总结下期预告文章字数有点多,耐心不够的谨慎点击阅读。 下期继续讲解在线参数辨识方法。 背景 最近又在开始重新梳理锂电池建模仿真与S…

使用stat()函数的例子

代码&#xff1a; #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> #include <stdio.h>int main(void) {struct stat st;if(-1stat("test.txt",&st)){printf("获得文件状态失败\n");return -1;}printf(&q…

【Rust】——所有的模式语法

&#x1f4bb;博主现有专栏&#xff1a; C51单片机&#xff08;STC89C516&#xff09;&#xff0c;c语言&#xff0c;c&#xff0c;离散数学&#xff0c;算法设计与分析&#xff0c;数据结构&#xff0c;Python&#xff0c;Java基础&#xff0c;MySQL&#xff0c;linux&#xf…

Unidbg调用-补环境V2

1.B站 内部依赖自定义的SignedQuery对象,需要找到apk中的类并补充环境。 package com.nb.demo;import com.github.unidbg.AndroidEmulator

llama3模型部署时遇到的问题及解决方案

在llama3模型部署时&#xff0c;会遇到一系列问题&#xff0c;这里就作者所遇到的问题与解决方法分享一下。 注意&#xff1a;这里是从llama3 github主页上给的方法一步步做的&#xff0c;不适用于其他部署大模型的方法。 文章目录 ERROR 403&#xff1a;Forbidden安装依赖时出…