如何强制Docker重新创建容器?不使用docker-compose可行吗?
问题解答
先明确:docker container restart 和 docker compose up --force-recreate 效果完全不同
docker container restart <容器名/ID> 只是重启运行中的容器,它不会删除旧容器,也不会重新创建新容器——容器的文件系统(除挂载的外部卷外)、网络配置等都会保留,相当于只是把容器进程停了再启动,和「重建」完全是两回事。
而docker compose up --force-recreate的核心是:先删除指定的旧容器,再用原配置重新创建并启动一个全新的容器,相当于把容器「重置」到初始状态(挂载的外部卷数据会保留)。
纯Docker命令实现强制重建容器的方法
要达到和--force-recreate一致的效果,你需要手动完成「停容器→删容器→重新创建启动容器」这三步:
- 停止目标容器:
docker stop <container_name_or_id> - 删除已停止的容器:
docker rm <container_name_or_id> - 用当初创建该容器时的完整命令重新创建并启动容器。比如你之前是用下面的命令创建的Nginx容器:
那现在就重新执行这条命令即可。docker run --name my-nginx -d -p 8080:80 -v ./html:/usr/share/nginx/html nginx
额外说明
- 如果你的容器是基于某个镜像的最新版本,想要同步镜像更新的话,可以在重新创建前先拉取最新镜像:
docker pull <image_name> - 如果你之前是用
docker create命令先创建容器再启动的,那第三步就先执行docker create(用原命令),再执行docker start <container_name>。
内容的提问来源于stack exchange,提问作者Ouss
相关产品推荐
相关产品推荐

