代码之家  ›  专栏  ›  技术社区  ›  Bill

通过dind将docker映像拉入并推送到本地主机

  •  0
  • Bill  · 技术社区  · 6 年前

    在dind中生成图像(docker中的docker)时,图像只能在dind中访问。

    $ docker run -d --name dind --privileged --net=host -v `pwd`:/app -w /app docker:stable-dind
    fe66d6e7e5effcf15e439a332a2368fddab810e9bc8ac3445392c8e56b0aa38a
    
    $ docker exec dind ls
    Dockerfile
    
    $ docker exec dind docker build -t demo .
    Sending build context to Docker daemon  521.7kB
    Step 1/24 : FROM alpine
    ...
    
    $ docker exec dind docker images|grep demo
    REPOSITORY                                              TAG                 IMAGE ID            CREATED             SIZE
    demo                                                    latest              a9dd4e725029        7 seconds ago       88.3MB
    
    $ docker images |grep demo
    <no result>
    

    我可以将图像推送到公共或私有docker注册表服务器 dind ,因为他们有IP或dns名称可以访问。但是我怎样才能将新映像推回到localhost呢( the host running dind )

    第二,如果我想从Dind中的localhost中提取图像,怎么做?

    1 回复  |  直到 3 年前
        1
  •  0
  •   Bill    6 年前

    我现在可以回答我的第一个问题了。

    $ docker exec dind docker save demo |docker load
    2f7d711abbe9: Loading layer [==================================================>]  11.44MB/11.44MB
    ...
    Loaded image: demo:latest
    
    $ docker images |grep demo
    demo                                                                              latest                  a9dd4e725029        8 minutes ago       88.3MB
    

    同样大小:-)

    但仍然不知道如何从Dind中的localhost中提取图像,有什么想法吗?