我从docker hub中提取了mysql,并且能够运行此容器。在创建了一些数据库和表之后,我想将此容器提交到新映像以便持久保存我的更改。通过这样做,我希望新图像可以运送到包含所有数据的其他成员。我用下面的命令:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3aca4ff8790d mysql "/entrypoint.sh mysql" 6 months ago Up 2 minutes 0.0.0.0:3306->3306/tcp lonely_liskov
$docker commit 3aca4ff8790d cooltoo/cooltoo_db:LATEST
当我运行这个新图像时,我的所有更改和设置都不存在。如何使用我的所有更改和设置将容器保存到新图像中?
答案 0 :(得分:0)
您最好的选择(以及行业最佳实践)是将您的更改放入Dockerfile(以“FROM mysql”开头)。引用docs:
首次启动容器时,将创建具有指定名称的新数据库,并使用提供的配置变量进行初始化。此外,它将执行扩展名为.sh,.sql和.sql.gz的文件,这些文件位于/docker-entrypoint-initdb.d中。文件将按字母顺序执行。
所以,如果你采取你的数据/架构/其他和mysqldump它并放入
ADD foo.sql /docker-entrypoint-initdb.d/foo.sql
......在那里,你应该是金色的。