所以我很久以前就在 docker 中启动了这个服务,--restart=always
它一直在运行。启动时使用的选项要么从未保存到脚本中,要么脚本早已丢失,但 docker 每次重启后都会尽职尽责地重新启动该服务,因此一切正常。
但现在是时候升级服务了。如何使用新映像重新创建容器,以便它获得与创建时在 docker 命令行上定义的相同的环境变量、卷、绑定挂载和所有其他选项(最好还有相同的 IP 地址)?
答案1
为将来
切换到podman
,使用正确的 Linux 方式使容器持久化podman generate systemd
并且它们将可以通过以下方式轻松更新podman auto-update
. 部分标签需按照 的说明粘贴podman auto-update
。
对于现有容器
- 从中找出参数
docker inspect
。参数和入口点与那里的默认值混合在一起,因此如果不清楚哪些参数是非默认值,可能也需要检查图像。 - 复制出任何卷的内容(如果使用卷而不是绑定挂载)
- 使用以下方式创建容器
podman
,使其持久化podman generate systemd
然后就可以为将来的更新做好准备了。 - 极其谨慎地卸载 docker。