Docker Compose容器更新异常:如何用单条命令实现正确更新?
Docker容器更新后仍用旧镜像的解决办法
单条命令实现彻底更新
直接用这条命令,能确保完全重新构建镜像并创建容器,不会被缓存坑:
docker-compose up -d --build --force-recreate --no-cache
参数说明
--build: 启动容器前重新构建服务对应的镜像--force-recreate: 不管配置或镜像有没有变化,强制删除旧容器并创建新容器--no-cache: 构建镜像时完全禁用缓存,从基础镜像开始从头构建,彻底避免旧缓存层导致的镜像内容未更新问题
之前命令失效的原因
你之前的命令没加--no-cache,Docker构建镜像时会复用之前的层缓存。如果代码或依赖的改动没触发缓存失效(比如Dockerfile里的COPY命令没覆盖到修改的文件),就会导致新构建的镜像其实还是旧内容,哪怕容器重建了,用的还是旧镜像。
备选更彻底方案
如果上面的命令仍偶尔出问题,可以用这条先清干净所有旧资源再重建:
docker-compose down --rmi all && docker-compose up -d --build --no-cache
它会先删除所有相关容器、网络,还会移除所有服务对应的镜像,然后重新构建并启动容器,把旧镜像的残留也彻底清除。
内容的提问来源于stack exchange,提问作者A.A
相关产品推荐
相关产品推荐

