更新从自定义的dockerfile创build的容器

在此之前,我已经阅读了这个问题及其中的相关链接,但我仍然对如何解决这个问题感到困惑。

我写了自己的docker文件来安装Archiva,与这个文件非常相似。 我使用docker build -t archiva .docker build -t archiva .文件创build了一个图像docker build -t archiva . 并有一个容器,我使用docker run archiva 。 如docker文件中所见,我想保留的用户数据位于一个volume

现在我想升级到Archive 2.2.0。 如何更新我的容器,以便卷中的用户数据被保留? 如果我通过h =更改版本号来更改docker文件,并再次运行docker build ,它将只创build另一个容器。

最佳实践

--volume docker-run的选项--volume可以在主机和容器之间共享文件,特别是保存一致的[user]数据。

问题是 ..

..看起来你没有使用 – --volume ,并且用户数据在图像中。 (这是一个糟糕的做法,因为它会导致您处于这种情况:无法轻松升级服务。

一个解决scheme(最好的IMO)是

备份用户数据

使用命令docker-cp :“ Copy files/folders between a container and the local filesystem. ”。

docker cp [--help] CONTAINER:SRC_PATH DEST_PATH

升级你的Dockerfile

通过编辑您的Dockerfile并更改版本。

使用--volume选项

使用docker run -v /host/path/user-data:container/path/user-data archiva

而且你很好!