docker里镜像用ipv6无法访问_虚拟服务器端口设置
前言
我有一个朋友, 他在Dev 和 Test 服务器用Docker 搭建了Redis 供项目使用, 然后今天Test 环境的Redis 端口访问不通了, 在服务上可以正常连接, 真是离了个大齐, 让我们试试排查排查问题;
正文
端口检测 lsof
已确认在本地用 telnet ip 6381
访问不通, 那就上服务上看看端口情况
Dev
Test
Dev环境同时映射到Ipv6和Ipv4端口, Test环境仅映射到Ipv6, 那基本上就可以断定是环境问题了
容器状态 docker ps
既然端口映射有问题, 就先看下容器的状态
Dev
Test
可以看到Dev同时映射了Ipv6和Ipv4, Test只映射了Ipv4, 这就能解释上面的情况了, 他说他搭建命令是一样的, emmm那就是环境问题, 看看Docker版本
Docker版本 docker -v
果然Test 版本是 Docker version 1.13.1
, Dev 版本是Docker version 20.10.8
, 这就能讲通为何同样的搭建命令但映射的不同;
但这又产生了一个新问题, 之前是这样是可以访问的, Ipv6 是可以兼容访问Ipv4的, Ipv4不能访问ipv6; 会不会是Ipv4的转发出了问题!
数据包转发 net.ipv4.ip_forward
当主机拥有多于一块的网卡时,其中一块收到数据包,根据数据包的目的ip地址将数据包发往本机另一块网卡,该网卡根据路由表继续发送数据包。这通常是路由器所要实现的功能;
执行 /sbin/sysctl net.ipv4.ip_forward
查看:
net.ipv4.ip_forward = 0
果然没开, 那就把这个转发打开
临时修改 net.ipv4.ip_forward
可以用 sysctl -w net.ipv4.ip_forward=1
或者 echo 1 > /proc/sys/net/ipv4/ip_forward
重启Redis 容器 docker restart redis
, 可以访问通了!
那就把这个配置永久生效
永久修改 net.ipv4.ip_forward
用vim
修改文件/etc/sysctl.conf
:
net.ipv4.ip_forward = 1
保存后调用 sysctl -p
生效, ok问题解决;
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/183735.html原文链接:https://javaforall.cn
相关文章
- docker打包容器
- Docker镜像私有仓库
- Docker:第二章:部署项目,对镜像,容器的操作
- docker导入镜像命令_docker怎么删除镜像
- 腾讯云 Docker 镜像加速 和 Docker Compose 的安装
- 使用Docker将你的应用制作成镜像
- Docker容器实战六:构建定制化镜像
- idea打包docker镜像特别慢_把代码和环境做成docker镜像
- 【云原生】Docker常用命令
- Docker更换国内镜像站提升速度
- Docker - docker-compose方式搭建高效的开发环境
- docker安装fastdfs
- Docker查看本地所有的镜像命令(docker images)
- Docker服务的搜索镜像命令(docker search 镜像名称)
- Docker删除容器命令(docker rm)
- 记一次docker虚拟机横向移动渗透测试
- Docker 软件安装
- 「 [Docker]当你的docker无法解析DNS 」
- 如何把Flask应用程序部署到Docker中
- PHP Docker镜像如何开启拓展 - wuuconix's blog
- docker 上传镜像到云端详解程序员
- 使用Docker安装Redis,一步到位!(docker安装redis)
- 探索Docker安装Oracle数据库的秘密(docker安装oracle)