首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从(jenkins)码头容器访问码头主机

从(jenkins)码头容器访问码头主机
EN

Stack Overflow用户
提问于 2015-08-19 15:16:22
回答 3查看 9K关注 0票数 3

我需要从jenkins运行docker命令,它是作为一个容器安装在docker上的。我的本地设置在OSX上,我使用boot2docker来虚拟化对接机器。

我已经通过简单的docker run -d -p 8080:8080 --name jenkins jenkins在码头上安装了jenkins,它运行得很好。

在jenkins上,我安装了"Docker“https://wiki.jenkins-ci.org/display/JENKINS/Docker+Plugin,它需要DOCKER来访问docker。

当boot2docker启动时,我得到了以下内容:DOCKER_HOST=tcp://192.168.59.103:2376,因此我假设docker在该主机/por上运行?

在jenkins上,我将DOCKER字段设置为http://192.168.59.103:2376,但是我得到了下面的错误http://192.168.59.103:2376

容器似乎无法访问boot2docker停靠服务器。也许我遗漏了一些东西,但我无法弄清楚我必须使用的正确的ip/端口是什么。

更新:更详细信息

代码语言:javascript
复制
This is what I get when I start boot2docker:

bash-3.2$ unset DYLD_LIBRARY_PATH ; unset LD_LIBRARY_PATH
bash-3.2$ mkdir -p ~/.boot2docker
bash-3.2$ if [ ! -f ~/.boot2docker/boot2docker.iso ]; then cp /usr/local/share/boot2docker/boot2docker.iso ~/.boot2docker/ ; fi
bash-3.2$ /usr/local/bin/boot2docker init 

  WARNING: The 'boot2docker' command line interface is officially deprecated.

  Please switch to Docker Machine (https://docs.docker.com/machine/) ASAP.

  Docker Toolbox (https://docker.com/toolbox) is the recommended install method.

Virtual machine boot2docker-vm already exists
bash-3.2$ /usr/local/bin/boot2docker up 

  WARNING: The 'boot2docker' command line interface is officially deprecated.

  Please switch to Docker Machine (https://docs.docker.com/machine/) ASAP.

  Docker Toolbox (https://docker.com/toolbox) is the recommended install method.

Waiting for VM and Docker daemon to start...
...............oooooooo
Started.
Writing /Users/local/.boot2docker/certs/boot2docker-vm/ca.pem
Writing /Users/local/.boot2docker/certs/boot2docker-vm/cert.pem
Writing /Users/local/.boot2docker/certs/boot2docker-vm/key.pem

To connect the Docker client to the Docker daemon, please set:
    export DOCKER_TLS_VERIFY=1
    export DOCKER_HOST=tcp://192.168.59.103:2376
    export DOCKER_CERT_PATH=/Users/local/.boot2docker/certs/boot2docker-vm

Or run: `eval "$(boot2docker shellinit)"`

bash-3.2$ $(/usr/local/bin/boot2docker shellinit)
Writing /Users/local/.boot2docker/certs/boot2docker-vm/ca.pem
Writing /Users/local/.boot2docker/certs/boot2docker-vm/cert.pem
Writing /Users/local/.boot2docker/certs/boot2docker-vm/key.pem
bash-3.2$ docker version
Client:
 Version:      1.8.0
 API version:  1.20
 Go version:   go1.4.2
 Git commit:   0d03096
 Built:        Tue Aug 11 17:17:40 UTC 2015
 OS/Arch:      darwin/amd64

Server:
 Version:      1.8.0
 API version:  1.20
 Go version:   go1.4.2
 Git commit:   0d03096
 Built:        Tue Aug 11 17:17:40 UTC 2015
 OS/Arch:      linux/amd64

以下是云的jenkins配置:

EN

回答 3

Stack Overflow用户

发布于 2015-08-19 20:35:44

正如@ISanych所建议的那样,您只需执行-v /var/run/docker.sock:/var/run/docker.sock,它也可以神奇地在boot2docker上工作。不需要定义DOCKER_URL

如果需要访问已启动容器的端口,您可能还会发现--net=host很有用。

票数 1
EN

Stack Overflow用户

发布于 2015-12-29 20:18:18

我的詹金斯码头插件也遇到了同样的问题。Docker默认使用tls,但docker插件只支持http。我所做的是禁用码头机器上的TLS验证。我的对接机器是一个Ubuntu,所以码头conf文件在/etc/default/docker下。在conf文件中,可以通过添加

代码语言:javascript
复制
--tls=false 

在DOCKER_OPTS中。类似于:

代码语言:javascript
复制
DOCKER_OPTS='-H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock --tls=false'
票数 1
EN

Stack Overflow用户

发布于 2017-11-18 15:11:09

这可能是对前一个答案的评论,但这似乎是不可能的。这只是提醒人们,监听0.0.0.0意味着侦听任何公开的可路由接口都可能连接到系统上配置的任何物理或虚拟网络接口。谨慎建议你只接触一个内部网络,不太可能遇到恶意的敌对势力。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32099532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档