dockerHosts文件无法外面加载

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: dockerHosts文件无法外面加载

机器环境

本实践将在 Ubuntu 22.04.3LTS 系统上进行安装测试
docker 版本Docker Engine - Community 24.0.6 ,原则上docker版本无影响

背景

因项目需求,需要再docker容器里面添加额外的hosts文件内容,想在通过 -v 挂载hosts文件,但是发现docker容器里面无法加载外部的hosts文件

操作过程记录

  • 运行容器脚本

    docker run -d -p 8088:80 -p 8081:8081 
    -v /root/deploy/nginx/hosts:/ect/hosts 
    -v /root/deploy/nginx/nginx.conf:/etc/nginx/nginx.conf 
    -v /root/deploy/nginx/default.conf:/etc/nginx/conf.d/default.conf 
    --restart=always --name nginx-example nginx:1.23.0
    
  • 现象1:上 面 /ect/hosts 无法被外面覆盖 , 当前docker机制为自动生成和维护

/var/lib/docker/containers/208b5870ad6889327a29e4ced312a66c377c885188303706a682793f72425125/hosts 文件为容器内的hosts文件的物理位置
通过 docker inspect nginx-example 获取到
```bash
vim /var/lib/docker/containers/208b5870ad6889327a29e4ced312a66c377c885188303706a682793f72425125/hosts

修改也无效,且重启后

cat /var/lib/docker/containers/208b5870ad6889327a29e4ced312a66c377c885188303706a682793f72425125/hosts

重新变回容器文件

```

  • 现象2:

    etc/nginx/nginx.conf /etc/nginx/conf.d/default.conf 两个文件, 在宿主机更改,不重启容器容器无法感知到,重启后可以感知到

  • 现象3:

    在容器里面更改上述两个文件,宿主机可以感知到

  • 现象4:家目录,如 home、xx , 现象同3

分析

现象3,现象4 这是由于linux系统文件挂载机制导致的。可以通过挂在目录的形式来实现
docker挂载文件时,并不是挂载了某个文件的路径,而是挂载了对应的文件,即挂载了linux指定的 inode 文件。
当使用vim之类的编辑器进行保存时,它不是直接保存文件,而是采用了备份、替换的策略,就是编辑时,是创建一个新的文件,在保存的时候,把备份文件替换源文件,这个时候文件的 inode 就发生了变化,而原来 inode 对应的文件其实并没有修改,也就是容器内的文件没有变化。当重启容器的时候,会挂载新的 inode 文件,所以容器内的文件没有变化。

此路不同,就像其他路径

脚本修改完配置文件后,重启容器 docker restart nginx-example

目录
相关文章
|
安全 Linux
Centos 7.x 升级内核
千万不要小瞧这操作。
534 0
|
11月前
|
弹性计算 运维 负载均衡
容器化管理云上应用体验评测
从解读方案开始,带你领略容器化管理云上应用的奇妙之旅。
12923 20
容器化管理云上应用体验评测
|
人工智能 Serverless 文件存储
“黏土风格”轻松拿捏,基于函数计算部署 ComfyUI实现AI生图
使用阿里云函数计算FC,快速部署AI绘画工具ComfyUI,体验高质量图像生成。新用户可享180元试用额度,包括GPU、vCPU、内存和调用次数。开通FC和文件存储NAS,通过应用中心选择ComfyUI模板创建应用。
47692 8
“黏土风格”轻松拿捏,基于函数计算部署 ComfyUI实现AI生图
|
12月前
|
Kubernetes 测试技术 应用服务中间件
基于 Nginx Ingress + 云效 AppStack 实现灰度发布
本文将演示结合云效 AppStack,来看下如何在阿里云 ACK 集群上进行应用的 Ingress 灰度发布。
65248 25
|
12月前
|
弹性计算 人工智能 Kubernetes
基于云效 AppStack,5 分钟搞定一个 AI 应用的开发和部署
区别于传统的流水线工具,本实验将带你体验云效应用交付平台 AppStack,从应用视角,完成一个 AI 聊天应用的高效交付。
56019 33
|
监控 Kubernetes 网络协议
上云业务的k8s容器排障与思考
本文主要讲述了在完成业务上云后,面临因业务请求量激增导致的系统复杂故障和挑战。作者通过排查分析,发现了一个长时间处于“进行中”状态的异常任务,客户端(APP2)进程卡死,而服务端(APP3)进程正常结束。进一步分析发现,问题出在kube-proxy代理的会话超时机制,由于请求处理延迟,kube-proxy清理了会话记录,导致服务端回包异常,客户端无法识别,从而形成进程假死。 最后,作者强调了在成本控制背景下,通过分析流量增长原因、优化技术架构和调整运营策略来改善系统性能和稳定性的必要性。
610 5
上云业务的k8s容器排障与思考
|
12月前
|
自然语言处理 算法 前端开发
体验教程:通义灵码陪你备战求职季
本场景将带大家体验在技术面试准备场景下,如何通过使用阿里云通义灵码实现高效的编程算法题练习 、代码优化、技术知识查询等工作,帮助开发者提升实战能力,更加从容地应对面试挑战。
30126 9
|
12月前
|
人工智能 自然语言处理 算法
哈啰集团全面接入通义灵码,AI 生成代码占比 20%,研发提效 12%
官宣!哈啰集团全面接入阿里云通义灵码专属版
21525 10
|
10月前
|
网络协议 安全 Linux
|
12月前
|
Kubernetes 安全 测试技术
多环境镜像晋级/复用最佳实践
本文介绍了在应用研发场景中,如何通过阿里云服务实现镜像构建部署的高效和安全。主要关注两个实践方法来确保“所发即所测”。
46171 9