centos6
默認情況下,Docker守護進程Unix socket(/var/run/docker.sock)來進行本地進程通信,而不會監聽任何端口,因此只能在本地使用docker客戶端或者使用Docker API進行操作。如果想在其他主機上操作Docker主機,就需要讓Docker守護進程打開一個HTTP Socket,這樣才能實現遠程通信。
編輯docker的配置文件/etc/sysconfig/docker修改DOCKER_OPTS成
#同時監聽本地unix socket和遠程http socket(2375)
DOCKER_OPTS="-H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375"
然后重新啟動docker守護進程。
sudo service docker restart
至此如果服務器啟用了防火牆,只要把2375端口開放既可以在其他主機訪問本docker實例了。
例如:
DOCKER_HOST=$host:2375 docker ps
此時發現docker守護進程已經在監聽2375端口,在另一台主機上可以通過該端口訪問Docker進程了。
# docker -H IP:2375 images
本地操作docker。
# docker images
centos7
Docker-build-step插件安裝部署
1.打開系統管理,插件管理,找到Docker build step插件,勾選選中,點擊直接安裝,安裝完成后重啟一下Jenkins容器;
2.使用終端登錄到B服務器,修改/usr/lib/systemd/system/docker.service 為:
ExecStart=/usr/bin/dockerd-current -H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock \ 參考下圖:

注意:4243為端口號,只要不跟系統沖突,任意端口都行。修改完后執行以下兩條命令使配置生效:systemctl daemon-reload和service docker restart ,防火牆一定要記得開放4243端口。
3.打開Jenkins Web系統界面,找到系統管理,系統設置,找到Docker Builer配置項,填入B服務器的IP地址和端口號,如圖所示,點擊測試連接,測試連接成功后,我們就可以利用Docker build step插件自動化管理Docker了。
