为了账号安全,请及时绑定邮箱和手机立即绑定

docker commit 后的镜像没有数据

/ 猿问

docker commit 后的镜像没有数据

当年话下 2018-08-30 14:27:12

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

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

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

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

我是遗漏了什么么?

我的操作记录为:

https://img4.mukewang.com/5ba89fe00001f03d07630213.jpg

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

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

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


查看完整描述

2 回答

?
慕沐林林

建议你还是在将数据卷挂载到本地
给你我本地开发所使用的docker-compose和Dockerfile部分代码作为参考,希望可以帮助到你

db:
        container_name: 'local_db'
        build: ./services/mysql
        environment:
          MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
        ports:
          - "3306:3306"        
          volumes:
          - ${MYSQL_DATA_PATH}:/var/lib/mysql

FROM mariadb:10.1
MAINTAINER crazycodes <919342864@qq.com>
ADD ./config/default.cnf /etc/mysql/conf.d/default.cnf


查看完整回答
反对 回复 2018-09-24
?
12345678_0001
  • 从dockerfile可以知道,MySQL的数据写到了VOLUME /var/lib/mysql

  • 数据不应该存放在容器,可以在启动容器时挂载本地目录到/var/lib/mysql


查看完整回答
反对 回复 2018-09-24

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信