0

我有一个 docker 图像,我在其中使用嵌入式 derby 持久性,如下所示:

COPY BatchDB /opt/ibm/wlp/usr/shared/resources/BatchDB
COPY derby /opt/ibm/wlp/usr/shared/resources/derby

BatchDB 文件夹有一些运行时文件,这些文件也在映像构建时被复制。

我想使用 docker 卷来持久化/opt/ibm/wlp/usr/shared/resources/BatchDB目录,但是在运行容器时,如果我附加了由外部创建的 docker 卷docker volume create --name dataVolume,则容器在 BatchDB 文件夹中没有任何文件。

当我挂载一个卷时,有什么办法,我仍然有在构建时存储的文件吗?

4

1 回答 1

0

首先,为了防止其他可能的错误,由于这个问题已经很老了,重要的是要知道对于最近的版本,volumes-from不推荐使用。

因此,我建议您使用命名卷,但尽管您的数据在内置时使用 COPY 存储,但当您运行服务时,其他容器可以访问卷中的数据。即,如果您使用 定义容器docker-compose,则数据不在使用docker-composebuild 的卷目录中,而是docker-compose up / run.

当您这样做时,您可以将其用作卷,甚至可以用作绑定(附加到主机),将数据签入/var/lib/docker/volumes/YOUR_NAMED_VOLUME_NAME/_data

于 2018-04-30T08:03:00.407 回答