【问题标题】:using a docker container to build another docker image使用 docker 容器构建另一个 docker 镜像
【发布时间】:2014-05-07 23:50:03
【问题描述】:

我正在将我的竹代理放入 docker 容器中,这样我就可以配置管理和推出以及所有其他很棒的东西,但我遇到了障碍。我的竹代理做的一件事是为其他应用程序构建 docker 映像。我无法将该功能加入到我的 docker 竹代理中。

我已阅读有关 docker-in-docker 的博文 http://blog.docker.io/2013/09/docker-can-now-run-within-docker/

但我不希望能够在 docker 容器中运行 docker 映像,我只想构建一个映像并将其上传到注册表。 我已经尝试了主管的实现,以便与我的代理一起启动 docker 守护进程,但这也被证明是困难的。

我在centos6.4上运行

我是否正在努力实现不可能的目标? 有没有其他我看不到的方法来解决这个问题?

提前感谢您的帮助

【问题讨论】:

    标签: continuous-integration build-process docker


    【解决方案1】:

    您可以使用 Docker 可执行文件和套接字作为卷启动容器,如下所示:

    docker run -v /usr/bin/docker:/usr/bin/docker -v /run/docker.sock:/run/docker.sock  -i -t ubuntu /bin/bash
    

    在该容器中,您可以运行 docker images 作为测试,以查看您是否可以执行任何您认为合适的 Docker 命令,例如构建和上传到注册表。我自己使用它来运行具有 Docker 功能的 Jenkins 从站。

    【讨论】:

    • 因此,如果我正确地解释了这一点,那么您就是在启动容器时将主机的 docker 功能传递到容器中。我试试看 $ docker run -v /usr/bin/docker:/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock -i -t竹子agent /bin/bash bash-4.1# docker images 2014/03/28 10:37:18 无法连接到 Docker 守护进程。 'docker -d' 是否在此主机上运行? bash-4.1# 可能需要映射另一个项目(docker.pid?)
    • 试试docker run -v /usr/bin/docker:/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock -e /docker.sock
    • 您可以在您的主机上拨打docker images 吗?如果可以,那么我不知道为什么这行不通。正如我所说,我自己使用它。如果你在主机上使用docker -H .... 或类似的东西,你也应该在容器中尝试。
    • 我收到关于缺少库 docker: error while loading shared libraries: libdevmapper.so.1.03: cannot open shared object file: No such file or directory 的错误。我应该安装其他东西来解决这个问题吗?
    • 更新:这里是工作命令:docker run -v /lib64:/lib64 -v /usr/bin/docker:/usr/bin/docker -v /run/docker.sock:/run/docker.sock -i -t ubuntu:14.04 /bin/bash
    猜你喜欢
    • 2021-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-02
    • 1970-01-01
    相关资源
    最近更新 更多