我已经为Jenkins安装了Docker构建步骤插件。
文档告诉我:
Name : Choose a name for this Docker cloud provider
Docker URL: The URL to use to access your Docker server API (e.g: http://172.16.42.43:4243)
如何找到REST API的URL(我的主机上安装了Docker)?
答案 0 :(得分:33)
如果您使用的是Linux并且需要连接到本地计算机上的Docker API,则其URL可能为unix:///var/run/docker.sock
,就像文档中提到的那样: Develop with Docker Engine SDKs and API < / p>
默认情况下,Docker守护程序侦听
unix:///var/run/docker.sock
,并且客户端必须具有root访问权才能与守护程序进行交互。如果系统上存在名为docker的组,则docker会将套接字的所有权应用于该组。
如果您从a JetBrains IDE连接到Docker,这可能会有所帮助。
答案 1 :(得分:10)
这是两种方法。
如何远程访问Docker REST API?
警告:设置完成后,您的Docker REST API端口(在这种情况下为
1111
)暴露于远程 访问。
这是我在Ubuntu 16.04(Xenial Xerus)上启用它的方式。
/lib/systemd/system/docker.service
,因为它将在升级时替换)sudo systemctl edit docker.service
[Service]
ExecStart=
ExecStart=/usr/bin/docker daemon -H fd:// -H tcp://0.0.0.0:1111
对于docker 18+,内容有所不同:
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:1111
保存修改后的文件。在这里,我使用了端口1111
,但是可以使用任何空闲端口。
确保Docker服务注意到已修改的配置:
systemctl daemon-reload
sudo service docker restart
curl http://localhost:1111/version
{"Version":"17.05.0-ce","ApiVersion":"1.29","MinAPIVersion":"1.12","GitCommit":"89658be","GoVersion":"go1.7.5","Os":"linux","Arch":"amd64","KernelVersion":"4.15.0-20-generic","BuildTime":"2017-05-04T22:10:54.638119411+00:00"}
现在您可以使用REST API。
如何通过套接字(从本地主机)访问Docker REST API?
像这样连接内部Unix套接字,
使用卷发
curl --unix-socket /var/run/docker.sock http:/localhost/version
这是使用PHP的方法
$fs = fsockopen('/var/run/docker.sock');
fwrite($fs, "GET / HTTP/1.1\r\nHOST: http:/images/json\r\n\r\n");
while (!feof($fs)) {
print fread($fs,256);
}
在PHP 7中,您可以将curl_setopt与 CURLOPT_UNIX_SOCKET_PATH 选项一起使用。
答案 2 :(得分:6)
这取决于您的主机,但请使用boot2docker VM查找/etc/default/docker
或/var/lib/boot2docker/profile
(对于Docker Machine个主机。)
您将看到docker守护程序使用的端口,例如:
DOCKER_OPTS="-H unix:// -H tcp://0.0.0.0:2375"
^^^^^
然后获取托管Docker守护程序的计算机的IP地址。
(使用Docker Machine创建主机,即:docker-machine ip <yourmachine>
。)
要使用的URL是IP地址和端口的组合。
答案 3 :(得分:0)
如果您在Windows上:
npipe:////./pipe/docker_engine
来源:https://docs.docker.com/docker-for-windows/faqs/#how-do-i-connect-to-the-remote-docker-engine-api