【问题标题】:Can we build a docker image using .tar or zip archive我们可以使用 .tar 或 zip 存档构建 docker 映像吗
【发布时间】:2018-01-01 14:39:38
【问题描述】:

我们可以使用包含 dockerfile 的 tarball 或 zip 存档来构建 docker 映像吗?我需要使用 docker api 从档案中构建图像。

有没有参考或资源,我已经搜索了 3o 分钟但找不到任何东西。

请帮帮我! 提前致谢!

【问题讨论】:

    标签: docker docker-image docker-build docker-api


    【解决方案1】:

    是的,可以从包含 Dockerfile 的 tarball 构建 dockerimage。 假设我们有一个名为 myDockerfile 的 dockerfile,其中包含以下脚本

    FROM ubuntu
    
    COPY ./venv /
    
    CMD ["/bin/bash"]
    

    myDockerFile 存在于文件夹 dockerfiles 中

    FOLDER --> dockerfiles
    FILE   -----------> myDockerFile 
    

    文件夹dockerfiles 的压缩包名为dockerfiles.tar

    构建镜像的 docker 命令将是:-

    cat dockerfiles.tar | docker build - -f dockerfiles/myDockerFile -t mydockerimage
    

    注意:-

    -f denotes the docker file in context to the tarball , if the dockerfile is called 'Dockerfile'
    then there is no need to mention the name of the filename verbose
    

    【讨论】:

      【解决方案2】:

      您可以使用docker load命令获取更多信息visit

      【讨论】:

        【解决方案3】:

        您的意思是,您的 tar.gz 包含一个 Dockerfile 并且您想构建它的映像?就像您从 github 版本下载档案一样,例如:https://github.com/nginxinc/docker-nginx/releases?

        是的,你可以:

        #!/bin/bash
        wget "https://github.com/nginxinc/docker-nginx/archive/1.13.2.tar.gz"
        tar xvf 1.13.2.tar.gz --strip-components 3 docker-nginx-1.13.2/stable/alpine/Dockerfile && docker build . -t mynginx
        

        【讨论】:

        • 实际上我正在尝试使用用户在我的 django 应用程序上上传并包含 dockerfile 的 tar 构建 docker 映像,但它返回 invalid tar header 错误。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多