docker&kubernetes❀dockersaveloadexportimport容器镜像的导入与导出方法(代码片段)

无糖可乐没有灵魂 无糖可乐没有灵魂     2022-12-01     220

关键词:

文章目录

1、构建镜像


为了完成save与load,需要首先构建一个新的镜像,区别其他镜像;

#爬取centos最新版本镜像文件,若已经本地存在,则忽略此步骤
[root@localhost ~]# docker pull centos
[root@localhost ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
centos        latest    5d0da3dc9764   2 months ago    231MB

#使用DockerFile构建新镜像文件,区分与新爬取的镜像
[root@localhost ~]# cat /tmp/docker_test 
FROM centos
RUN yum install -y vim
RUN yum install -y net-tools
CMD /bin/bash

#创建新镜像,镜像版本自定义
[root@localhost ~]# docker build -f /tmp/docker_test -t mycentos:1.1 .
Sending build context to Docker daemon  10.67MB
Step 1/4 : FROM centos
 ---> 5d0da3dc9764
Step 2/4 : RUN yum install -y vim
 ---> Running in fd8ea201e781
Complete!
Removing intermediate container fd8ea201e781
 ---> 705f34782fe8
Step 3/4 : RUN yum install -y net-tools
 ---> Running in 2b55f92b2400
Transaction Summary
Complete!
Removing intermediate container 2b55f92b2400
 ---> 3cf9004e05db
Step 4/4 : CMD /bin/bash
 ---> Running in 6f5051dd5df6
Removing intermediate container 6f5051dd5df6
 ---> a57146ea148c
Successfully built a57146ea148c
Successfully tagged mycentos:1.1

#查看自定义镜像是否与源镜像存在区别
[root@localhost ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
mycentos      1.1       a57146ea148c   6 seconds ago   322MB
centos        latest    5d0da3dc9764   2 months ago    231MB

2、docker save&load


2.1 save

#查看save帮助信息
[root@localhost ~]# docker save --help

Usage:  docker save [OPTIONS] IMAGE [IMAGE...]

Save one or more images to a tar archive (streamed to STDOUT by default)

Options:
  -o, --output string   Write to a file, instead of STDOUT

#保存新镜像为压缩文件(镜像保存的方式为tar文件)
[root@localhost ~]# docker save mycentos:1.1 -o /tmp/docker_test.tar

#查看保存后的文件
[root@localhost ~]# ll -dh /tmp/docker_test.tar 
-rw-------. 1 root root 316M Nov 25 23:45 /tmp/docker_test.tar

#为了区分导入效果,删除已经存在的新镜像
[root@localhost ~]# docker rmi mycentos:1.1 
Untagged: mycentos:1.1
Deleted: sha256:a57146ea148c22072e0d38f0a54f1f6980a41a635569e0bd0cbe0ca20a16056a
Deleted: sha256:3cf9004e05db213e83d5d2a07437aefdc027ea5a6231975442c53965697e81e8
Deleted: sha256:567a09c801ae815e0f77d51d5a53b199d63dff41a7018507403cb20a7c1719c2
Deleted: sha256:705f34782fe83875c7b93ff02b355a3d1a0f1254e1999c4473e1060be1c45a8e
Deleted: sha256:ea725633ca1e7902c20ad8f8955108e2ce1159f3a74be4cc3918206a5f5fb3d4

2.2 load

#查看load帮助信息
[root@localhost ~]# docker load --help

Usage:  docker load [OPTIONS]

Load an image from a tar archive or STDIN

Options:
  -i, --input string   Read from tar archive file, instead of STDIN
  -q, --quiet          Suppress the load output

#使用load导入相关tar文件
[root@localhost ~]# docker load -i /tmp/docker_test.tar 
df73d6b025a6: Loading layer [==================================================>]  65.34MB/65.34MB
53aeac00a22a: Loading layer [==================================================>]  27.04MB/27.04MB
Loaded image: mycentos:1.1

#查看导入结果
[root@localhost ~]# docker images | grep centos
mycentos      1.1       a57146ea148c   8 minutes ago   322MB
centos        latest    5d0da3dc9764   2 months ago    231MB

3、docker export&import


3.1 export

#查看export帮助信息
[root@localhost ~]# docker export --help

Usage:  docker export [OPTIONS] CONTAINER

Export a container's filesystem as a tar archive

Options:
  -o, --output string   Write to a file, instead of STDOUT

#使用新镜像创建新容器
[root@localhost ~]# docker run -it --name docker_test_001 -d mycentos:1.1
4f0bddcc627d85e1d1e94ae4b7fb42afcc5cb937f8760ff10b53887122503366

#查看新创建的容器信息
[root@localhost ~]# docker ps 
CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS         PORTS     NAMES
4f0bddcc627d   mycentos:1.1   "/bin/sh -c /bin/bash"   3 seconds ago   Up 2 seconds             docker_test_001

#使用export导出新创建的容器
[root@localhost ~]# docker export docker_test_001 -o /tmp/docker_test2.tar

#查看导出文件
[root@localhost ~]# ll -hd /tmp/docker_test2.tar 
-rw-------. 1 root root 280M Nov 25 23:55 /tmp/docker_test2.tar

3.2 import

#查看import帮助信息
[root@localhost ~]# docker import --help

Usage:  docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]

Import the contents from a tarball to create a filesystem image

Options:
  -c, --change list       Apply Dockerfile instruction to the created image
  -m, --message string    Set commit message for imported image
      --platform string   Set platform if server is multi-platform capable

#使用import导入tar文件,并修改名称(将容器文件导入为镜像文件)
[root@localhost ~]# cat /tmp/docker_test2.tar | docker import - mycentos:1.1
sha256:9ec265f446a211c7f3518aa927ffbc436ee20f12d00352ed8bb02b23bb79902e
#此命令同上条命令,功能一致
[root@localhost ~]# docker import /tmp/docker_test2.tar mycentos:1.1

#查看导入结果
[root@localhost ~]# docker images
REPOSITORY      TAG       IMAGE ID       CREATED          SIZE
mycentos        1.1       c05c5045a5c1   3 seconds ago    231MB

4、梳理与总结


export和import 导出的内容是一个容器的快照,并不是镜像本身,没有layer,快照文件会导致容器丢失所有的历史记录与元数据信息,而使用save和load保存的镜像文件则可以保留此两种内容,但是其体积更大;

  • docker load 加载镜像包、 docker import 加载容器包,两者都将其恢复为镜像;
  • docker load不能对镜像重命名、docker import可以为镜像指定新名称;

docker&kubernetes❀kubernetes集群基本组件与工作流程

...式的演变1.1传统部署:1.2虚拟化部署1.3容器化部署2、Kubernetes简介3、Kubernetes组件3.1master3.2node3.3案例演示3.4注意事项4、Kubernetes概念1、部署方式的演变在应用程序历史上主要经理了三个部署模式,分别如下:1.1传统部... 查看详情

docker&kubernetes❀kubernetes集群service资源配置清单(代码片段)

文章目录1、基本概念1.1Userspace模式1.2Iptables模式1.3Ipvs模式(推荐使用)2、服务类型2.1服务类型3、服务使用方法3.1环境准备3.2ClusterIP类型3.2.1Endpoint3.2.2SessionAffinity3.3Headless类型3.4NodePort类型3.5LoadBalancer类型3.6ExternalName类 查看详情

docker&kubernetes❀kubernetes集群数据存储(pvpvcnfsiscsi等)(代码片段)

文章目录1、数据存储2、基本存储2.1EmptyDir2.2HostPath2.3NFS2.3.1搭建NFS服务器2.3.2创建Pod调用NFS3、高级存储3.1PV和PVC基本概念3.2PV详解3.2.1参数详解3.2.2案例演示3.3PVC详解3.3.1参数详解3.3.2案例演示3.4生命周期3.5案例展示(iSCSI)3... 查看详情

docker&kubernetes❀kubernetes集群pod调度方式资源配置清单(代码片段)

文章目录1、调度方式产生背景2、定向调度2.1NodeName2.2NodeSelector3、亲和性调度3.1NodeAffinity3.1.1Required硬限制3.1.2Preferred软限制3.1.3注意事项3.2PodAffinity3.2.1测试环境准备3.2.2Required硬限制3.2.3Preferred软限制3.3PodAntiAffinity3.3.1Required硬 查看详情

docker&kubernetes❀kubernetes集群pod调度方式资源配置清单(代码片段)

文章目录1、调度方式产生背景2、定向调度2.1NodeName2.2NodeSelector3、亲和性调度3.1NodeAffinity3.1.1Required硬限制3.1.2Preferred软限制3.1.3注意事项3.2PodAffinity3.2.1测试环境准备3.2.2Required硬限制3.2.3Preferred软限制3.3PodAntiAffinity3.3.1Required硬 查看详情

docker&kubernetes❀kubernetes集群-dashboard服务(web管理)安装部署(代码片段)

...限4、获取Token值5、页面导入Token值1、服务下载DashBoard为Kubernetes的一个基于Web的用户界面,可以使用DashBoard部署容器化的应用,还可以监控应用与节点状态,执行故障排查与管理资源等操作ÿ 查看详情

docker&kubernetes❀kubernetes集群pod生命周期资源配置清单(代码片段)

文章目录1、Pod生命周期概念简述2、创建和终止2.1创建过程2.2终止过程3、初始化容器4、钩子函数4.1Exec命令4.2TCPSocket4.3HTTPGet5、容器探测5.1Exec5.1.1探测失败演示案例5.2TCPSocket5.2.1探测失败演示案例5.3HTTPGet5.3.1探测失败演示案例5.4其... 查看详情

Typescript Mongoose - 方法/静态函数未被调用 [Kubernetes - Docker]

】TypescriptMongoose-方法/静态函数未被调用[Kubernetes-Docker]【英文标题】:TypescriptMongoose-methods/staticfunctionsnotbeingcalled[Kubernetes-Docker]【发布时间】:2021-12-2520:54:26【问题描述】:我在Kubernetes-Docker中使用mongodb<TypeScript>时 查看详情

docker&kubernetes❀kubernetes集群pod控制器-job(代码片段)

文章目录1、基本概念与控制器特点2、资源配置清单3、创建控制器3.1Job控制单个Pod3.2Job控制多个并发Pod4、删除控制器1、基本概念与控制器特点Job:主要用于负责批量处理(一次性处理指定数量任务)短暂的一次性... 查看详情

docker&kubernetes❀kubernetes集群pod控制器-horizontalpodautoscaler(hpa)(代码片段)

文章目录1、基本概念与控制器特点2、安装Metric-Server2、部署Deployment控制器和Service3、部署HPA控制器4、测试HPA功能4.1使用软件下发多个http请求4.2查看HPA、Deployment、Pod监控过程1、基本概念与控制器特点在前面的课程中,我们... 查看详情

docker&kubernetes❀kubernetes集群pod控制器-deployment(deploy)(代码片段)

...器1、资源配置清单为了更好的解决服务编排的问题,Kubernetes在V1.2版本开始,引入了Deployment控制器,这种控制器并不会直接管理Pod,而是通过管理ReplicaSet来间接管理Po 查看详情

kubernetes学习之入门篇

本篇内容是在公司做技术分享时的PPT,主要内容:Kubernetes&Docker简介容器技术基础知识介绍Kubernetes核心设计浅析详细内容请看PPT:https://download.csdn.net/download/u010657094/13078830或者:https://github.com/ByrsH/doc/blo 查看详情

docker&kubernetes❀kubernetes集群pod控制器-replicaset(rs)(代码片段)

文章目录1、资源配置清单2、创建ReplicaSet控制器3、副本扩缩容3.1Edit修改3.2命令修改3.3Apply命令4、镜像升级4.1Edit修改4.2命令修改4.3Apply5、删除ReplicaSet控制器1、资源配置清单ReplicaSet的主要作用是保证一定数量的Pod能够正常运行&#x... 查看详情

docker&kubernetes❀kubernetes集群pod控制器-replicaset(rs)(代码片段)

文章目录1、资源配置清单2、创建ReplicaSet控制器3、副本扩缩容3.1Edit修改3.2命令修改3.3Apply命令4、镜像升级4.1Edit修改4.2命令修改4.3Apply5、删除ReplicaSet控制器1、资源配置清单ReplicaSet的主要作用是保证一定数量的Pod能够正常运行&#x... 查看详情

docker&kubernetes❀kubernetes集群pod控制器分类简述(代码片段)

文章目录1、基本概念2、常见的Pod控制器3、配置参数查询方法1、基本概念Pod控制器是管理Pod的中间层,使用了Pod控制器之后,只需要告诉Pod控制器需要创建的方式、数量、参数即可,控制器会根据配置内容创建出满... 查看详情

docker&kubernetes❀kubernetes集群pod控制器-cronjob(cj)(代码片段)

文章目录1、基本概念与控制器特点2、资源配置清单3、创建控制器4、删除控制器1、基本概念与控制器特点Cronjob控制器以Job控制器资源为其管控对象,并借助它管理Pod资源对象,Job控制器定义的作业任务在其控制器资源... 查看详情

docker&kubernetes❀dockersaveloadexportimport容器镜像的导入与导出方法(代码片段)

文章目录1、构建镜像2、dockersave&load2.1save2.2load3、dockerexport&import3.1export3.2import4、梳理与总结1、构建镜像为了完成save与load,需要首先构建一个新的镜像,区别其他镜像;#爬取centos最新版本镜像文件,若已经... 查看详情

Kubernetes 相当于 `docker run --init`

】Kubernetes相当于`dockerrun--init`【英文标题】:Kubernetesequivalentof`dockerrun--init`【发布时间】:2018-11-2100:44:35【问题描述】:建议的最佳做法是不要将dockerizedNode.JS应用程序作为PID1(请参阅https://github.com/nodejs/docker-node/blob/master/docs/Be... 查看详情