例将mysql容器打包成镜像导处
-
容器生成新镜像
docker commit -m=“提交描述信息” -a=“作者” 容器id 自己起镜像名:版本 -
保存(导出)镜像
把镜像打包成 .tar
-o 要保存路径.tar
> 要保存路径.tar
docker save 镜像名称:tag > /存储路径/xxx.tar
docker save 镜像名称:tag -o /存储路径/xxx.tar2.1.虚悬镜像
例如,使用镜像ID打包的话导致解压的出来的镜像没有名字称为虚悬镜像
docker save -o 镜像名称.tar 新镜像名称:镜像标签
此方式打包的镜像,解压出来就有镜像名称了
重命名镜像的方法:docker tag [镜像id] [新镜像名称]:[新镜像标签]
-
导入镜像
docker load -i 镜像名称.tar
mysql docker commit 后的镜像没有数据
原因: docker commit 提交后 容器中的 /var/lib/mysql/ 中的 文件是没有被提交到镜像中的。
解决方法:
1、需要 在修改mysql容器 中的 根目录下 新建目录 mdkir /data。
2、 将 /var/lib/mysql 复制 到新建目录中。
3、 修改 /etc/mysql/my.cnf
datadir = /data
4、退出 重启 容器就生效。
5、重新 将该容器 commit 为新 的镜像, 再进行开新容器就可以了