'撤消'或'取消'dockerfile VOLUME在registry中共享mysql数据库

我从mysql Dockerfileinheritance,并希望将VOLUME(/ var / lib / mysql)移回容器中,以便从registry中分发。

在我的下游Dockerfile有一种方法(a)撤消VOLUME声明或(b)用符号链接replace/ var / lib / mysql?

请记住,在Docker docker build期间使用Dockerfiles,因此不(并且不能)包含主机相关的信息或操作。 所以VOLUME /var/lib/mysql不会让你的映像无法分发。 该指令所做的是创build一个通用的(即非绑定挂载)数据卷,该数据卷在容器的生命周期之外保持该目录的数据。 例如在docker run -v "/var/docker/app/data:/var/lib/mysql" ... ,它与bind-mount卷不同。 此Dockerfile指令不会阻止您分发映像,因为它不指定主机相关信息。

我放弃了这一点 – 似乎更简单的分发DB数据目录的压缩副本。 如果您有更好的select,请发布。

我有完全相同的问题,只是与另一个数据库(arangodb)。

但是,我没有find这个问题的直接解决scheme,但在我的情况下(这应该也适用于MySQL),我只是将我的数据库的数据目录更改为Dockerfile中的非卷目录。

就目前而言,这似乎是最好的解决scheme,因为您可以构build包含数据的完整映像。