我需要从安装在docker上的jenkins中运行docker命令。我的本地设置在OSX上,并使用boot2docker来虚拟化docker机器。
我通过简单地“docker run -d -p 8080:8080 --name jenkins jenkins”在docker上安装了jenkins,它正在正常运行。
在jenkins上,我已经安装了“Docker插件”https://wiki.jenkins-ci.org/display/JENKINS/Docker+Plugin,该插件需要DOCKER URL才能访问docker api。
当boot2docker启动时,我得到以下内容:“DOCKER_HOST = tcp:// 192.168.59.103:2376”,因此我假设docker api正在该主机/端口上运行?
在jenkins上,我将DOCKER URL字段设置为“http:// 192.168.59.103:2376”,但我收到以下错误“shaded.org.apache.http.client.ClientProtocolException”。
似乎容器无法访问boot2docker docker服务器。也许我错过了什么,但我无法弄清楚我必须使用的正确ip /端口是什么。
更新:更多细节
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 配置的步骤: