【发布时间】:2021-10-22 14:17:04
【问题描述】:
是否有任何命令可以运行并找出“Docker 主机 URI”?我找到了一些相关的questions,但没有完全理解。
【问题讨论】:
标签: docker jenkins-docker
是否有任何命令可以运行并找出“Docker 主机 URI”?我找到了一些相关的questions,但没有完全理解。
【问题讨论】:
标签: docker jenkins-docker
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 Host URI "unix: ///var/run/docker.sock",它对我有用,我希望它也是。
【讨论】:
unix: 和///var 之间的空格。除此之外,它有效!
是的,这是 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
【讨论】:
tcp://172.17.0.1:2375
如果您在同一主机上运行的 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
【讨论】:
如果您在 OS X 中,HOST URL 是:
unix:///var/run/docker.sock
【讨论】: