Mysql 是否可以在Dockerfile/Docker Compose中使用提交的容器映像?

Mysql 是否可以在Dockerfile/Docker Compose中使用提交的容器映像?,mysql,docker,docker-compose,Mysql,Docker,Docker Compose,我有一个容器,在构建之后运行并停止它的进程。我希望使用该状态在其上构建(就像使用第一次运行时的数据)。我使用了一个MySQL映像(希望数据能被存储),如下所示(compose中还有其他容器,目的是连接到这个MySQL实例): mysql custom是在第一次运行期间包含数据的提交映像。这是可能的,将数据放入并使用相同的数据再次构建该MySQL实例,还是我在这里犯了一些不可接受的错误?是的,这是可能的,将数据放入并使用相同的数据再次构建该实例,(不考虑装入的卷))仅当您直接将数据保存在容器中时,

我有一个容器,在构建之后运行并停止它的进程。我希望使用该状态在其上构建(就像使用第一次运行时的数据)。我使用了一个MySQL映像(希望数据能被存储),如下所示(compose中还有其他容器,目的是连接到这个MySQL实例):


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

是的,这是可能的,将数据放入并使用相同的数据再次构建该实例,(不考虑装入的卷))仅当您直接将数据保存在容器中时,这是可能的,可以将数据保存在容器中并使用相同的数据再次构建该实例(不考虑已装入的卷)。仅当您直接将数据保存在容器中时,您可以将自定义映像中的状态构建在另一个映像上。


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

是的,您可以将自定义映像中的状态构建在另一个映像上。


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

基本上,此图像将包含所有的表和初始数据,因此另一个实例可以根据需要使用、更改数据和删除数据。这完全有道理,我建议使用Dockerfile来构建这个自定义包装器映像。你可以参考的是,我们希望这个过程自动化,并由初始化这个过程的系统运行,它可以改变。通过这种方法,我们已经需要一个.sql转储,对于最近的系统来说,这个转储可能在一段时间后就过时了。如果我建议的方法不可行,尽管我认为您的解决方案是最合适的。基本上,此图像将包含所有表和初始数据,因此另一个实例可以根据需要使用、更改数据和删除数据。这完全有道理,我建议使用Dockerfile来构建这个自定义包装器映像。你可以参考的是,我们希望这个过程自动化,并由初始化这个过程的系统运行,它可以改变。通过这种方法,我们已经需要一个.sql转储,对于最近的系统来说,这个转储可能在一段时间后就过时了。如果我建议的方法不可行,尽管我认为您的解决方案是最合适的。应该这样做,但是当另一个实例使用更新方法时,表就不存在了。我想知道这是否是因为我直接给出了图像标签,因此构建方式不同,而不是为其创建Dockerfile。应该是这样,但当另一个实例使用update one时,表就不存在了。我想知道这是否是因为我直接给了图像标签,因此构建方式不同,而不是有一个Dockerfile。在搜索时没有找到这个。非常感谢,我将使用卷来完成系统设置。它是。在搜索时没有找到这个。非常感谢,我将使用卷来完成系统设置。
mysql:
  image: mysql-custom
  command: mysqld --user=root
  environment:
      MYSQL_ROOT_PASSWORD: "toor"
      MYSQL_ALLOW_EMPTY_PASSWORD: "yes"