设为首页 收藏本站
查看: 999|回复: 0

[经验分享] docker images 保存导入导出、容器导入导出

[复制链接]

尚未签到

发表于 2018-5-26 11:28:23 | 显示全部楼层 |阅读模式
Docker:镜像操作和容器操作
镜像操作
列出镜像:
$ sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
hello-world         latest              0a6ba66e537a        4 weeks ago         960 B获取镜像:
docker系统镜像可以从任意一个可访问的镜像仓库获取,默认从docker hub上获取,如果下载太慢的话可以考虑国内的镜像仓库,例如dl.dockerpool.com:5000或者阿里云镜像库下载。
docker获取镜像用docker pull命令,如下:
docker pull ubuntu:  
从dl.dockerpool获取镜像 docker pull dl.dockerpool.com:/ubuntu:注意:从第三方镜像仓库获取镜像可能出现https证书问题,例如:
Error response from daemon: unable to ping registry endpoint https://dl.dockerpool.com:5000/v0/v2 ping attempt failed with error: Get https://dl.dockerpool.com:5000/v2/: tls: oversized record received with length 28012v1 ping attempt failed with error: Get https://dl.dockerpool.com:5000/v1/_ping: tls: oversized record received with length 28012解决方案:
进入/etc/default目录,找到docker文件,在其中添加如下代码:
DOCKER_OPTS="--insecure-registry dl.dockerpool.com:5000" 之后重启docker服务:
sudo service docker restart 镜像保存与导入
保存的文件以.tar方式存在
保存方式一:save
save命令会将镜像完整保存,包括历史版本和元数据信息,所以文件可能比较大。
   DSC0000.gif
docker save -o /home/fengzheng/dockerImages/mmm. ubuntu: Error response from daemon: open /var/lib/docker/aufs/mnt/30868777f2756735efc907c763555f869472d48ea92156c3c4b09ac22ec4adc6/.wh..wh.plnk/1003.3513973: operation not permitted
  
保存方式二:export
确切的说,export其实是容器的保存,只把镜像当前的状态保存下来,没有历史版本等信息,所有文件比较小
-o:表示以文件形式导出 紧跟在-o后面的是导出文件保存位置   最后是容器的id 容器通过sudo docker ps -a 查看,下一篇会介绍
docker export -o ubuntu1204. d0751467dcad
镜像导入:
docker load
sudo docker load < /home/fengzheng/Docker/ubtuntu12.04.tar
镜像删除
删除镜像前,要先把依赖于这个镜像的容器删除(sudo docker rm 容器id)
删除镜像的命令是docker rmi [镜像id]
sudo docker rmi 0ac5b09d8536
Deleted: 0ac5b09d8536832e73c10e39bfda2e94781e07ebe47a206ea1c20f3f672f258a
Deleted: efbb515ae632b8ba4b8536c1eadcf1304d915c076fcadbc8c2cb6f8f2ab82013
Deleted: 5e59ab4801348d2d951c93373151bf0b4059c30bb1b58af4ce5e390114e83e1c
Deleted: be10ee96620dd1cb4bae39bb0351f241eed25b086e0c90a907a29eef2af41b34
提交修改的容器,并生成新的镜像
当对现有容器进行修改后,例如安装了某些软件、修改了配置等,要保存当前修改并生成新的镜像,使用docker commit命令 ,这个命令和git的commit命令很像
docker commit -a  -m  ae2a59b86dd9 fengzheng/查看镜像的信息:docker inspect [镜像名称或者镜像id]
sudo docker inspect fengzheng/ubuntu
或者sudo docker inspect 085243761c41
容器操作
新建并启动容器
根据一个镜像可以启动多个容器,启动容器的命令是docker run
1
2
3
sudo docker run -t -i ubuntu:12.04  /bin/bash
或者
sudo docker run -t -i  镜像id
常用参数解释:
-t 表示让Docker分配一个伪终端并绑定到容器的标准输入上
-i 表示让容器的标准输入保持打开
-d 表示以守护方式打开(即非交互模式,后台运行)
还有一个比较常用的,做网络配置时端口映射的参数-p,例如下面的命令将宿主机的3222端口映射到容器的22端口、将宿主机的3280端口映射到容器的22端口,用法如下:
1
#-p 设置端口映射 -p 宿主机端口:容器端口  <br>sudo docker run -t -i -p 3222:22 -p 3280:80 87e5b6b3ccc1 /bin/bash
查看容器列表
1
2
3
4
5
#查看已启动的容器
sudo docker ps
#查看所有容器
sudo docker ps -a  
启动一个已存在的容器  
1
#后面的id为容器ID<br>sudo docker start 8d98fd43acd4
进入容器  
1
sudo docker attach 8d98fd43acd4
停止容器
1
sudo docker stop 8d98fd43acd4
删除容器
容器必须是停止状态的才可以删除
1
sudo docker rm 8d98fd43acd4
导出容器
1
2
#将容器id为7691a814370e 的导出到当前目录下 名称为ubuntu.tar
sudo docker export 7691a814370e > ubuntu.tar


docker镜像文件导入与导出
工作中经常需要拉取一些国外的镜像,但是网络限制等原因在公司拉取很慢,所以我习惯用亚马逊服务器拉取镜像,导出后下载到本地再导入开发环境
1. 查看镜像id
sudo docker imagesREPOSITORY               TAG                 IMAGE ID            CREATED             SIZE
quay.io/calico/node      v1.0.1              c70511a49fa1        6 weeks ago         257 MB
hello-world              latest              48b5124b2768        2 months ago        1.84 kB
quay.io/coreos/flannel   v0.7.0              63cee19df39c        2 months ago        73.8 MB
quay.io/calico/cni       v1.5.5              ada87b3276f3        2 months ago        67.1 MB
2. 选择要打包的镜像,执行打包命令
sudo docker save -o quay.io-calico-node-1.tar quay.io/calico/node
会在当前目录下生成导出文件xxx.tar,然后将此文件下载到本地

3. 在开发环境导入上述打包的镜像
docker load -i quay.io-calico-node-1.tar  
0a43edc59c00: Loading layer 27.59 MB/27.59 MB
69a5574b2581: Loading layer 3.636 MB/3.636 MB
fb0933709f36: Loading layer 3.913 MB/3.913 MB
7384abd120f5: Loading layer 3.859 MB/3.859 MB
e34911610de0: Loading layer 27.06 MB/27.06 MB
d6ec327c8cbe: Loading layer 6.656 kB/6.656 kB
Loaded image ID: sha256:ada87b3276f307a6b1b1ada15820b6c9842fd839fe5cc46ad5db8af81f7fd271  
至此,可以使用本地镜像了!

docker 容器的导入导出

导出容器docker export
导出容器快照到本地文件
$ sudo docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                    PORTS               NAMES
7691a814370e        ubuntu:14.04        &quot;/bin/bash&quot;         36 hours ago        Exited (0) 21 hours ago                       test
$ sudo docker export 7691a814370e > ubuntu.tar

导入容器快照docker import
从容器快照文件中再导入为镜像
$ cat ubuntu.tar | sudo docker import - test/ubuntu:v1.0
$ sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED              VIRTUAL SIZE
test/ubuntu         v1.0                9d37a6082e97        About a minute ago   171.3 MB

通过指定 URL 或者某个目录来导入
$sudo docker import http://example.com/exampleimage.tgz example/imagerepo

Note: 用户既可以使用 docker load 来导入镜像存储文件到本地镜像库,也可以使用 docker import 来导入一个容器快照到本地镜像库。这两者的区别在于容器快照文件将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态),而镜像存储文件将保存完整记录,体积也要大。此外,从容器快照文件导入时可以重新指定标签等元数据信息。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-481306-1-1.html 上篇帖子: docker从容器里面拷文件到宿主机或从宿主机拷文件到docker容器里面 下篇帖子: 使用 Docker 搭建 Tomcat 运行环境
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表