【问题标题】:Use docker command in jenkins container在詹金斯容器中使用 docker 命令
【发布时间】:2019-06-21 00:38:36
【问题描述】:

My centos version and docker version(install by yum)

Use docker common error in container

我的 docker 运行命令:

docker run -it -d -u root --name jenkins3 -v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/usr/bin/docker docker.io/jenkins/jenkins

但是,当我在 jenkins 容器中执行 docker info 时出错

/usr/bin/docker: 2: .: 无法打开/etc/sysconfig/docker

【问题讨论】:

  • 您面临的问题是什么?你必须清楚这一点。一个常见的过程是从陌生人的角度阅读您的问题,然后问自己是否足够清楚。
  • @shakhawat 我做了一个补充,你也可以看看图片
  • 一般来说,仅仅将应用程序的二进制文件“复制”到另一台计算机是不足以运行该应用程序的。您是否为此遵循了一些教程?尝试使用 yum 在容器中安装 docker-ce。
  • @sneep install docker-ce 是可行的,但它使我的图像大小非常大,1.2G。我读过很多教程,有些只挂载 /var/run/docker.sock 工作,有些还挂载 /usr/bin/docker 工作,我不明白为什么我的错误。
  • 请不要将终端窗口的屏幕截图粘贴到 Stack Overflow 问题中;它们以后很难阅读和搜索。相反,请从终端窗口中复制相关文本并将其(可能缩进四个空格,因此它看起来像一个代码块)粘贴到您的问题中。

标签: docker jenkins


【解决方案1】:

将主机的 docker 套接字暴露给你的 jenkins 容器将可以使用

-v /var/run/docker.sock:/var/run/docker.sock

但您需要通过 Dockerfile 将 docker 可执行文件安装在您的 jenkins 映像中。

您正在查看的示例可能已经在使用 docker 映像。一个快速的谷歌搜索带来了https://jpetazzo.github.io/2015/09/03/do-not-use-docker-in-docker-for-ci/,其示例使用了一个 docker 镜像(已经安装了可执行文件):

docker run -v /var/run/docker.sock:/var/run/docker.sock \
       -ti docker

还请注意同一篇文章中安装二进制文件的确切问题:

这篇文章的早期版本建议将 docker 二进制文件从主机绑定挂载到容器。这不再可靠,因为 Docker 引擎不再作为(几乎)静态库分发。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-24
    • 1970-01-01
    • 2021-06-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多