docker映射了端口,宿主机不生效

2024-08-23 17:12

本文主要是介绍docker映射了端口,宿主机不生效,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、问题产生原因

docker run -d --name my-redis -p 6379:6379 -v /usr/redis.conf:/usr/local/etc/redis/redis.conf team-redis:3.2 redis-server /usr/local/etc/redis/redis.conf

这容器跑起来了,端口6379没用。搞的我一直怀疑哪里出错了,查看配置文件啊,命令啊。

2、发现问题源

docker run 命令后,发现控制台有一个警告输出。猜测就是这个吧

WARNING: IPv4 forwarding is disabled. Networking will not work.

随即问了AI

  1. 启用 IPv4 转发: 您需要在内核中启用 IPv4 转发。这可以通过编辑 /etc/sysctl.conf 文件来实现。使用文本编辑器打开该文件:

    sudo nano /etc/sysctl.conf

    在文件末尾添加以下行:

    net.ipv4.ip_forward=1

    保存并关闭文件。

  2. 应用更改: 使用 sysctl -p 命令来应用更改:

    sudo sysctl -p

    或者,如果您只是想临时应用更改,而不修改配置文件,您可以直接设置:

    sudo sysctl net.ipv4.ip_forward=1
  3. 验证更改: 您可以使用 sysctl 命令来验证更改是否已经应用:

    sysctl net.ipv4.ip_forward

    输出应显示 net.ipv4.ip_forward = 1

注意事项:

  • 如果您是在企业级 Linux 发行版(如 RHEL/CentOS)上遇到此问题,您可能需要确保 SELinux 或其他安全策略不会阻止 IPv4 转发。您可以通过禁用 SELinux 或调整 SELinux 策略来解决此问题。例如:

    sudo setenforce 0

    或者调整 SELinux 策略:

    sudo semanage boolean -m -a -n docker_connect -t user_home_t
    sudo semanage boolean -m -a -n ip_forward -t public_content_t
    sudo semanage boolean -m -a -n ip_forward -t public_content_t
    sudo semanage boolean -m -a -n ip_forward -t public_content_t
    sudo semanage boolean -m -a -n ip_forward -t public_content_t
    sudo semanage boolean -m -a -n ip_forward -t public_content_t
    sudo semanage boolean -m -a -n ip_forward -t public_content_t
    sudo semanage boolean -m -a -n ip_forward -t public_content_t
    sudo semanage boolean -m -a -n ip_forward -t public_content_t
    sudo semanage boolean -m -a -n ip_forward -t public_content_t
    sudo semanage boolean -m -a -n ip_forward -t public_content_t

3、调整

改配置,并使其生效。特此记录

这篇关于docker映射了端口,宿主机不生效的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1100000

相关文章

解决docker目录内存不足扩容处理方案

《解决docker目录内存不足扩容处理方案》文章介绍了Docker存储目录迁移方法:因系统盘空间不足,需将Docker数据迁移到更大磁盘(如/home/docker),通过修改daemon.json配... 目录1、查看服务器所有磁盘的使用情况2、查看docker镜像和容器存储目录的空间大小3、停止dock

docker 重命名镜像的实现方法

《docker重命名镜像的实现方法》在Docker中无法直接重命名镜像,但可通过添加新标签、删除旧镜像后重新拉取/构建,或在DockerCompose中修改配置文件实现名称变更,感兴趣的可以了解一下... 目录使用标签(Tagging)删除旧的php镜像并重新拉取或构建使用docker Compose在Do

使用MapStruct实现Java对象映射的示例代码

《使用MapStruct实现Java对象映射的示例代码》本文主要介绍了使用MapStruct实现Java对象映射的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、什么是 MapStruct?二、实战演练:三步集成 MapStruct第一步:添加 Mave

docker编写java的jar完整步骤记录

《docker编写java的jar完整步骤记录》在平常的开发工作中,我们经常需要部署项目,开发测试完成后,最关键的一步就是部署,:本文主要介绍docker编写java的jar的相关资料,文中通过代... 目录all-docker/生成Docker打包部署文件配置服务A的Dockerfile (a/Docke

Docker多阶段镜像构建与缓存利用性能优化实践指南

《Docker多阶段镜像构建与缓存利用性能优化实践指南》这篇文章将从原理层面深入解析Docker多阶段构建与缓存机制,结合实际项目示例,说明如何有效利用构建缓存,组织镜像层次,最大化提升构建速度并减少... 目录一、技术背景与应用场景二、核心原理深入分析三、关键 dockerfile 解读3.1 Docke

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

SpringBoot路径映射配置的实现步骤

《SpringBoot路径映射配置的实现步骤》本文介绍了如何在SpringBoot项目中配置路径映射,使得除static目录外的资源可被访问,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一... 目录SpringBoot路径映射补:springboot 配置虚拟路径映射 @RequestMapp

Nginx中配置使用非默认80端口进行服务的完整指南

《Nginx中配置使用非默认80端口进行服务的完整指南》在实际生产环境中,我们经常需要将Nginx配置在其他端口上运行,本文将详细介绍如何在Nginx中配置使用非默认端口进行服务,希望对大家有所帮助... 目录一、为什么需要使用非默认端口二、配置Nginx使用非默认端口的基本方法2.1 修改listen指令

Linux实现查看某一端口是否开放

《Linux实现查看某一端口是否开放》文章介绍了三种检查端口6379是否开放的方法:通过lsof查看进程占用,用netstat区分TCP/UDP监听状态,以及用telnet测试远程连接可达性... 目录1、使用lsof 命令来查看端口是否开放2、使用netstat 命令来查看端口是否开放3、使用telnet