如何在Docker容器中编辑容器内网页的HTML文件及注释
解答
完全支持修改容器内置网页的注释内容,以下是3种适配不同场景的实现方式,新手也能直接照着操作:
方法1:直接进入运行中容器修改(适合临时测试)
这个方法操作最快,不需要重启容器,适合临时改内容验证效果:
- 执行
docker ps命令获取目标Web容器的ID或名称,输出结果中对应你部署的Web服务条目,第一列为容器ID,最后一列为容器名 - 执行命令进入容器终端:
docker exec -it <你的容器ID/容器名> /bin/bash,如果执行报错提示找不到bash,就把末尾的/bin/bash换成/bin/sh(适配Alpine类轻量基础镜像) - 进入容器内网页存放路径,常见Web服务的默认网页根目录:
- Nginx:
/usr/share/nginx/html - Apache/httpd:
/var/www/html - 其他自定义镜像可以看镜像说明文档找对应路径
- Nginx:
- 用容器内自带的vi、nano等编辑器打开目标网页文件,直接修改注释内容后保存,刷新localhost页面、查看网页源码就能看到修改后的内容
*注意:这种方式的修改会在容器删除、重建后全部丢失,不适合长期使用。
方法2:挂载本地目录覆盖容器网页路径(新手长期使用推荐)
这是日常开发最常用的方式,改内容不需要进容器,本地改完实时生效,也不会因为容器重启丢失修改:
- 先把容器内原本的网页文件拷贝到本地,比如你本地新建一个存放网页的目录
~/my-web-files,执行命令:docker cp <你的容器ID>:<容器内网页根目录路径> ~/my-web-files - 停止并删除当前运行的旧Web容器:
docker stop <容器ID> && docker rm <容器ID> - 重新启动容器时增加目录挂载参数,以Nginx为例启动命令参考:
docker run -d -p 80:80 -v ~/my-web-files:/usr/share/nginx/html <你使用的Web镜像名>
命令里的-v参数作用是把你本地的网页目录,直接映射覆盖容器内部的网页目录 - 后续要修改网页注释,直接在本地用你习惯的文本编辑器改
~/my-web-files里的对应文件即可,改完强制刷新浏览器(Ctrl+F5)就能看到效果。
方法3:构建自定义镜像(适合固定修改、分发场景)
如果你需要把修改后的内容打包成固定镜像,后续在其他机器部署也自带修改后的注释,可以用这个方法:
- 新建一个工作目录,把你修改好的网页文件放到这个目录里,同时在目录下新建名为
Dockerfile的文件,内容参考:
# 以你当前正在使用的Web镜像作为基础 FROM <你原本使用的Web镜像名:对应标签> # 把本地修改好的网页文件复制到容器内的网页根目录,覆盖原有文件 COPY ./本地网页文件路径 <容器内网页根目录路径>/
- 在Dockerfile所在目录执行构建命令:
docker build -t custom-web-image . - 构建完成后,用新生成的
custom-web-image镜像启动容器即可,启动后的容器默认就带修改好的网页注释。
小提示:如果修改完刷新页面看不到变化,优先按Ctrl+F5强制刷新清除浏览器缓存,绝大多数情况下是缓存导致的旧内容展示。
内容的提问来源于stack exchange,提问作者user19427137
相关产品推荐
相关产品推荐

