Docker运行容器打包成镜像保存和加载
问题描述
docker运行容器打包成镜像保存并导出
步骤
1 查看需要保存的容器的的名字,这里以hexo镜像举例说明
1 | docker ps |
2 保存镜像docker commit提交容器副本使之成为一个新的镜像
可以看出已经存在一个hexo:1.0的镜像,所以这边博主保存为hexo:2.0
1 | docker stop hexo |
3 选择镜像进行保存
1 | docker save hexo:2.0 |gzip > ./hexo2.0.zip |
加载镜像
可以在别的设备上传,加载刚保存的镜像了。当别人拿到了我的.tar文件或者我上文打包的.zip文件的时候,都可以进行解压
把本地导入docker镜像run起来即可使用
1 | docker load -i hexo2.0.zip |
总结
当我在hexo的容器上修改后,可以通过 docker commit 的方式将容器生成新的镜像
换句话说,就是在原有镜像的基础上,再叠加上容器的存储层,并构成新的镜像。以后我们运行这个新镜像的时候,就会拥有原有容器最后的文件变化
如果使用 docker commit 制作镜像,以及后期修改的话,每一次修改都会让镜像更加臃肿一次,所删除的上一层的东西并不会丢失,会一直如影随形的跟着这个镜像,即使根本无法访问到。这会让镜像更加臃肿。
我们修改了容器的文件,通过 docker diff 命令看到具体的改动
butterfly
git clone -b master https://github.com/jerryc127/hexo-theme-butterfly.git /usr/local/blog/themes
如果你沒有 pug 以及 stylus 的渲染器,請下載安裝:
npm install hexo-renderer-pug hexo-renderer-stylus –save
在 hexo 的根目錄創建一個文件 _config.butterfly.yml,並把主題目錄的 _config.yml 內容複製到 _config.butterfly.yml 去
cp _config.yml /usr/local/blog/_config.butterfly.yml