这几天尝试了一下把已经build的镜像导出到本地,再上传到别的服务器上加载,简单记录一下。
1、把镜像save成.tar文件
# l使用这个,这个之后load的镜像是没有镜像名和标签的,只有id
docker save 镜像id > 文件名.tar
# load之后应该有镜像名和tag(没使用过,我猜的)
docker save -o 文件名.tar 镜像名:tag
save完成:
2、将镜像上传到本地虚拟机中
3、load .tar文件
docker load -i tar文件路径
加载成功:
查看镜像:
docker images
对比images id发现镜像。
4、给镜像重命名:
docker tag 镜像id 镜像名:标签
5、run镜像时踩的坑
下面我run这个镜像是的时候报了一个问题,容器中的python脚本无法打开文件,报错:[Errno13] Permission denied 没有权限!
查了才知道是docker对挂载的宿主机目录没有读取权限!
处理方式:
chcon -Rt svirt_sandbox_file_t {宿主机上的目录或文件,例如:/home/docker/mysql/}
参考链接:
https://blog.youkuaiyun.com/weixin_51410036/article/details/120126901
https://blog.youkuaiyun.com/u012326462/article/details/81038446
之后再去run这个镜像就没问题了!