更新从自定义的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
而且你很好!