猿问

docker commit 后的镜像没有数据

我想弄一个带有数据的镜像,这样就可以在不同的环境(主机)中 pull 下来这个镜像就会有完整的数据了.

我从 docker mysql5.5 下载了一个dockerfile 文件,在本地 build 之后生成了一个 image . 
后来基于这个 image 创建了一个 mysql5.5 的容器, 并且基于在这个容器里面导入了一个数据库.
导入数据是成功,容器也正常运行.

接着我对这个容器 做了 commmit 的操作,并且打了 tag ,推送到 docker.hub 了.

但是我再从 docker hub 中 pull 这个 image . 发现基于这个 image 创建的容器,只有一个空的 mysql . 里面没有我导入的那个数据库.

我是遗漏了什么么?

我的操作记录为:

可以看到新的 image 是350MB 的.

问题就出现这里,我再从我 pull 下来的镜像也是 350M 的.但是这个 镜像创建的容器 却是空数据库的.

如果我这个方式不行,那么有什么办法能实现我的目的么?


当年话下
浏览 3404回答 2
2回答

12345678_0001

从dockerfile可以知道,MySQL的数据写到了VOLUME /var/lib/mysql。数据不应该存放在容器,可以在启动容器时挂载本地目录到/var/lib/mysql。
随时随地看视频慕课网APP
我要回答