在 Dockerfile/Docker-Compose 中使用提交的容器镜像是不是可行? [复制]

Posted

技术标签:

【中文标题】在 Dockerfile/Docker-Compose 中使用提交的容器镜像是不是可行? [复制]【英文标题】:Is Using A Commited Container Image In A Dockerfile/Docker-Compose Possible? [duplicate]在 Dockerfile/Docker-Compose 中使用提交的容器镜像是否可行? [复制] 【发布时间】:2018-09-05 15:13:15 【问题描述】:

我有一个容器在构建后运行并停止了它的进程。我想使用该状态在其之上构建(例如使用其首次运行的数据)。我用一个 mysql 镜像(希望数据将被存储)如下(compose 中还有其他容器,旨在连接到这个 MySQL 实例):

mysql:
  image: mysql-custom
  command: mysqld --user=root
  environment:
      MYSQL_ROOT_PASSWORD: "toor"
      MYSQL_ALLOW_EMPTY_PASSWORD: "yes"

mysql-custom 是第一次运行期间具有数据的提交映像。这是否可能,将数据放入并使用相同的数据再次构建该 MySQL 实例,还是我在这里做一些不可接受的错误?

【问题讨论】:

是的。搜索时没有找到这个。非常感谢,那我就用volumes来实现系统设置。 【参考方案1】:

是的,这是可能的,将数据放入并使用相同的数据再次构建该实例,(不考虑已安装的卷),前提是您直接将数据保存在容器中 p>

【讨论】:

应该,但是当另一个实例使用更新实例时,表不存在。我想知道是不是因为我直接给出了图像标签,因此以不同的方式构建,而不是为它提供一个 Dockerfile。【参考方案2】:

是的,您可以将自定义图像中的状态构建在另一个图像之上。 https://blog.codeship.com/using-docker-commit-to-create-and-change-an-image/

但无法理解您的用例,您能否解释一下,也许我可以提出相应的建议?

【讨论】:

基本上,这个镜像会有所有的表和初始数据,所以另一个实例可以随意使用、更改数据和删除数据。就像系统的模板数据库。 这完全有道理,我建议使用 Dockerfile 来构建这个自定义包装器映像。可以参考***.com/questions/29145370/… 问题是,我们希望这个过程自动化,并由初始化它的系统运行,这可以改变。通过这种方法,我们已经需要一个 .sql 转储,对于最近的系统,它可能会在一段时间后过时。如果我建议的方法不可行,但我认为您的解决方案是最合适的。

以上是关于在 Dockerfile/Docker-Compose 中使用提交的容器镜像是不是可行? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

秋的潇洒在啥?在啥在啥?

上传的数据在云端的怎么查看,保存在啥位置?

在 React 应用程序中在哪里转换数据 - 在 Express 中还是在前端使用 React?

存储在 plist 中的数据在模拟器中有效,但在设备中无效

如何在保存在 Mongoose (ExpressJS) 之前在模型中格式化数据

如何在保存在 Mongoose (ExpressJS) 之前在模型中格式化数据