【问题标题】:How to find "Docker Host URI" to be used in Jenkins "Docker Plugin"?如何找到要在 Jenkins“Docker 插件”中使用的“Docker 主机 URI”?
【发布时间】:2021-10-22 14:17:04
【问题描述】:

是否有任何命令可以运行并找出“Docker 主机 URI”?我找到了一些相关的questions,但没有完全理解。

【问题讨论】:

    标签: docker jenkins-docker


    【解决方案1】:

    jenkins 作为容器运行时的 Jenkins Docker 插件配置

    1) 首先安装 Docker 插件

    2) 转到管理 Jenkins -> 系统配置 -> 向下滚动到底部 -> 添加云 -> Docker

    3) 如果您将 jenkins 作为容器运行,则必须在 docker host uri 字段中输入 docker 主机的 unix 或 tcp 地址。但是由于您将 jenkins 作为容器运行,因此容器无法到达 docker host unix 端口

    4) 所以我们必须运行另一个可以在 docker host 和 jenkins 容器之间进行调解的容器。它将公开 docker 主机的 unix 端口作为其 tcp 端口。按照说明创建socat容器https://hub.docker.com/r/alpine/socat/

    5)创建socat容器后,可以回到jenkins中的docker配置,输入tcp://socat-container-ip:2375

    6) 测试连接现在应该成功了

    【讨论】:

    • 这是使用 Docker for MacOS 并在容器中运行 Jenkins 的人的正确答案。经过几天的研究,@shaik47 的答案对我有用。 MacOS Mojave:10.14.5,Docker for MacOS:2.1,引擎:19.03
    • 谢谢@shaik47 它对我有用。我的配置是 MacOS Mojava:10.14.6 Docker Engine 19.03.5
    • 上述解决方案适用于 AWS Cent OS 以及 Jenkins 容器尝试配置 Docker 集线器的情况。使用以下两个命令查找 socat 容器的 IP 地址。非常感谢..... docker ps docker inspect container_name | grep IP地址
    • @Shaik47 :我是否需要在 socat 和 Jenkins 之间提供任何连接,因为我按照步骤#4 和 #5 进行操作,但仍然因 CONNECTION REFUSED 错误而失败。如果您有指点,请帮助...跨度>
    【解决方案2】:

    另一个选项是输入 Docker Host URI "unix: ///var/run/docker.sock",它对我有用,我希望它也是。

    【讨论】:

    • 无需对系统进行任何其他更改即可完美运行。谢谢!
    • 我必须删除unix:///var 之间的空格。除此之外,它有效!
    【解决方案3】:

    是的,这是 docker 主机 uri

    tcp://127.0.0.1:2375

    但在此之前你需要添加这个 DOCKER_OPTS="-H tcp://127.0.0.1:2375 -H unix:///var/run/docker.sock"

    /etc/default/docker文件末尾,然后重启docker.onec重启docker.sock会在2375运行,并在Jenkins中添加这个tcp://127.0.0.1:2375

    【讨论】:

    • 另外要更改 DOCKER_OPTS,您可能应该检查您的 docker 主机 IP 地址是什么,检查一下stackoverflow.com/questions/22944631/… 然后您应该将此 IP 与 DOCKER_OPTS 中指定的端口一起放入 'Manage Jenkins/Configure系统/Docker 主机 URI'。假设 IP 是 172.17.0.1,端口是 2375,那么 Docker Host URI 就是:tcp://172.17.0.1:2375
    • 如何在 docker for windowsCE 中执行此操作?
    【解决方案4】:

    如果您在同一主机上运行的 docker 是在容器中使用 Jenkins,那么您可以使用 unix:///var/run/docker.sock 作为“Docker 主机 URI”,但是您必须使用以下方法检查并获取 jenkins 用户的权限:

    sudo groupadd docker
    sudo usermod -aG docker $USER
    sudo chmod a+rwx /var/run/docker.sock
    sudo chmod a+rwx /var/run/docker.pid
    

    【讨论】:

      【解决方案5】:

      如果您在 OS X 中,HOST URL 是:

      unix:///var/run/docker.sock
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-11-24
        • 2023-03-17
        • 2016-09-07
        • 2015-07-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-02
        相关资源
        最近更新 更多