背景:
在做用Jenkins構建docker的操作,需要用Jenkins調用docker命令,需要先安裝docker-build-step插件,然后開啟docker遠程訪問。
默認情況下,Docker守護進程會生成一個socket(/var/run/docker.sock)文件來進行本地進程通信,而不會監聽任何端口,因此只能在本地使用docker客戶端或者使用Docker API進行操作。
如果想在其他主機上操作Docker主機,就需要讓Docker守護進程監聽一個端口,這樣才能實現遠程通信。
方法
永久開啟遠程訪問和本地訪問(親測有效)
進入/etc/systemd/system/目錄
$ cd /etc/systemd/system/
查找docker.service文件
# 在/etc/systemd/system目錄下查找docker.service文件
$ find /etc/systemd/system -name docker.service
docker.service文件路徑:
Ubuntu : /etc/systemd/system/multi-user.target.wants/docker.service
centos : /usr/lib/systemd/system/docker.service
打開docker.service文件
vim docker.service
注釋掉:ExecStart=/usr/bin/dockerd -H fd://
添加:ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
保存Docker.service文件
刷新配置
$ sudo systemctl daemon-reload
重新啟動Docker守護進程
$ sudo systemctl restart docker
確認是否重啟成功
$ sudo ps -ef | grep docker
or
$ sudo ps -A|grep docker
測試Docker遠程通訊是否成功開啟
Docker客戶端校驗
瀏覽器訪問:http://Docker服務器IP:2375/info
Docker服務器校驗遠程訪問
docker -H tcp://localhost:2375 images
或
docker -H tcp://127.0.0.1:2375 images
或
docker -H tcp://Docker服務器IP:2375 images
Docker服務器校驗本地訪問
docker info
最后在Jenkins的系統設置中添加 tcp://docker主機地址:2375 ,Test Connection一下,成功連接
參考:https://blog.csdn.net/yx_222/article/details/80936757