美文网首页
从其他环境导入镜像文件

从其他环境导入镜像文件

作者: 上岸的魚 | 来源:发表于2020-03-23 21:27 被阅读0次

    引言:有时候我们的环境无法连接公网,且内网无镜像仓库或镜像仓库不存在该镜像,这种情况我们可以从其他环境导入该镜像。

    目标:将A机器的某一个镜像导入到B机器
    在A机器(可联网),先将镜像pull到本机下来,然后Save

    docker pull xxxx.com/blang/alpine-bash:3.8
    docker save -o alpine-bash3.8.tar xxx.com/blang/alpine-bash:3.8
    

    然后下载该 alpine-bash3.8.tar文件,再上传该文件到B机器的某一个目录。
    B机器执行如下命令,导入镜像。
    docker load -i alpine-bash3.8.tar
    导入后 docker images 看到这个镜像还是原域名xxxx.com:


    此时我们已经可以根据该镜像创建容器了。
    下面步骤可选
    如果内部搭建了私有仓库,我们需要自行打标签,然后我们才能导入到私有仓库
    docker tag hub.xxxx.com/blang/alpine-bash:3.8 192.168.101.101:30083/apollo/alpine-bash:3.8 #192.168.101.101:30083是我们自己镜像仓库的地址。
    docker push 192.168.101.101:30083/apollo/alpine-bash:3.8
    docker push时可能遇到两个问题:
    docker push时可能会提示两个错误:
    1.Get https://xxxxx/v2/: dial tcp 122.112.162.138:443: connect: connection refused
    如果你的仓库没有启用https,那么需要修改/etc/docker/daemon.json,将你的域名或IP添加到insecure-registries中,这样就会默认对你的域名走http协议,如
    "insecure-registries": ["hub.xxxx.cn","192.168.0.230:8081"]
    2.提示:unauthorized: access to the requested resource is not authorized
    这说明你的服务器没有权限往仓库上传,你需要在linux中登录下仓库
    docker login hub.xxxx.com
    输入仓库的帐户及密码,再次push通常就成功了。
    **补充说明**
    离线环境镜像保存与导入有两种(save/load或export:import)
    【save】操作镜像,是保存一个完整的镜像,包含分层系统统一打包;【export】操作容器,是导出容器当前的操作系统,不包含分层系统,仅包含当前系统中的状态。
    docker save保存的是镜像(image),docker export保存的是容器(container);
    docker load用来载入镜像包,docker import用来载入容器包,但两者都会恢复为镜像;
    docker load不能对载入的镜像重命名,而docker import可以为镜像指定新名称。
    
    

    相关文章

      网友评论

          本文标题:从其他环境导入镜像文件

          本文链接:https://www.haomeiwen.com/subject/pxugyhtx.html