0

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

我编写了自己的 docker 文件来安装 Archiva,它与这个文件非常相似。我使用 docker 文件从 docker 文件创建了一个图像,docker build -t archiva .并拥有一个使用docker run archiva. 从 docker 文件中可以看出,我要保留的用户数据位于volume.

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

4

1 回答 1

1

最佳实践

选项允许在主机和容器之间共享文件,尤其是保留一致的 [用户] 数据--volumedocker-run

问题是 ..

..您似乎没有使用--volume并且用户数据在图像中。(这是一种不好的做法,因为它会导致您所处的情况:无法轻松升级服务。

一种解决方案(最好的 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

而且你很好!

于 2016-03-09T06:32:55.987 回答