• k8s手动下载镜像、通过容器创建镜像方法


    手动下载镜像

    1、首先pull镜像到本地

    docker pull <镜像名称>:<标签>
    
    • 1

    2、转储镜像

    docker save -o /path/to/save/image.tar <镜像地址>
    
    • 1

    如:

    docker save -o ./tomcat.tar localhost:5000/tomcat:9.0.80
    
    • 1

    3、解压

    tar -xvf /path/to/save/image.tar 
    
    • 1

    补充

    1、如果要将tar还原成镜像

    docker load -i /path/to/save/image.tar
    
    • 1

    或者用输入重定向

    docker load < /path/to/save/image.tar
    
    • 1

    通过容器创建镜像的3种方式

    1、使用docker commit创建镜像

    • 查看容器ID
    docker ps -a
    
    • 1
    • 选择一个具体的运行过的容器,执行docker commit,并且指定镜像标签与版本
    docker commit -m "this is comment " 8eddf9a796fc my_activemq:latest
    
    • 1

    2、使用docker exportdocker import创建镜像

    • 查看容器ID
    docker ps -a
    
    • 1
    • 导出容器到文件
    docker export <CONTAINER ID> > img.tar
    
    • 1
    • 加载保存的容器创建镜像
    docker import img.tar <ImageName>:[Tag]
    
    • 1

    3、使用docker savedocker load导出容器tar创建镜像

    • 导出tar
    docker save -o /path/to/save/image.tar 
    
    • 1
    • 加载tar
    docker load < /path/to/save/image.tar
    
    • 1

    当然,除了上面3种方式,我们还可以通过docker build 命令根据 Dockerfile 创建镜像。
    示例:使用docker commit构建镜像:
    执行命令:docker commit -m "this is comment " 8eddf9a796fc my_activemq:latest
    查看镜像:
    在这里插入图片描述
    查看镜像构建历史:
    在这里插入图片描述
    附:dockfile详解,参考这篇大神的文章,很详细。

    假如是在某个pod中下载的,那我们可以使用kubectl cp 命令拷贝到我们本地

    1.将pod里的文件拷贝到主机

    kubectl cp -n <namespace> -c <container_name> <pod_name>:<文件绝对路径> <文件目标位置>
    
    • 1
    注:
    1.文件绝对路径前面/的要去掉
    2.文件目标位置不能为文件夹,必须为文件路径
    
    • 1
    • 2
    • 3

    例:将pod里 /data/test.sql 拷贝到主机当前路径下,并命名为test.sql

    kubectl cp -n zeus -c mysql zeus-mysql-back-0:data/test.sql ./test.sql
    
    • 1

    2.将主机文件拷贝到pod

    kubectl cp <主机文件路径> -n <namespace> -c <container_name> <pod_name>:<容器内绝对路径>
    
    • 1
    注:
    1.主机文件路径可以为相对路径,也可以为绝对路径。
    2.pod内绝对路径前面不能有 /
    
    • 1
    • 2
    • 3

    例:将主机当前路径下的test.sql文件拷贝到pod的data目录下,并命名为testnew.sql

    kubectl cp ./test.sql -n zeus -c mysql zeus-mysql-back-1:data/testnew.sql
    
    • 1
  • 相关阅读:
    朋友电脑密码忘了,我当场拔了她的电源,结果。。。
    Mybatis-plus的介绍与使用
    ASON 技术简介
    从事网络安全工作一定要科班出身吗?
    SpringBoot使用redis解决分页查询大量数据慢的情况
    网友心得—运行jeecgboot-vue3项目可能出现的问题
    论软件的可靠性设计
    shiro的实现认证
    Oracle(11)Managing Tables
    MQTT 基础--持久会话和排队消息:第 7 部分
  • 原文地址:https://blog.csdn.net/qq_35890572/article/details/133022463