Docker容器(httpd:2.4)静态网站内容无法更新的问题求助
问题原因
你遇到的问题核心在于:Docker镜像构建时会把本地代码打包到镜像内部,第一次执行docker-compose up时会完成镜像构建并启动容器。之后修改本地文件后直接执行up -d,Docker Compose会默认复用已存在的旧镜像,容器内的内容还是镜像打包时的旧版本,自然看不到修改后的效果。
解决方法
方法一:强制重新构建镜像(临时修改场景用)
执行带--build参数的启动命令,让Docker重新构建镜像,把最新的本地文件打包进去:
docker-compose -f docker-compose/docker-compose.yml up -d --build
方法二:使用本地目录挂载(开发阶段推荐)
如果是日常开发需要频繁修改内容,更高效的方式是在docker-compose.yml中添加卷挂载,把本地项目目录直接映射到容器的网页目录,这样修改本地文件会实时同步到容器内,无需反复构建镜像。
修改你的docker-compose.yml,在对应的httpd服务配置下添加volumes字段:
services: # 假设你的服务名是httpd,根据实际配置调整 httpd: build: . # 对应你的Dockerfile所在路径 volumes: - ./:/usr/local/apache2/htdocs # 本地当前目录挂载到容器的网页目录 # 端口映射等其他原有配置保持不变
修改后执行docker-compose up -d,之后再修改本地的index.html,刷新网页就能直接看到最新内容。
内容的提问来源于stack exchange,提问作者Mahri
相关产品推荐
相关产品推荐

