要想擁有私有docker倉庫,須要安裝registry鏡像,最新版是2.0,具體能夠看文檔:https://docs.docker.com/registry/。java
1. docker pull registryspring
2. docker run -d -p 5000:5000 --restart=always --name registry registry:2
docker
使用http://localhost:5000/v2/測試,返回"{}",表示安裝成功。apache
使用maven命令(mvn clean package)打包時,報:Failed to execute goal com.spotify:docker-maven-plugin:0.4.13:build (default-cli) on project config: Exception caught: java.util.concurrent.ExecutionException: com.spotify.docker.client.shaded.javax.ws.rs.ProcessingException: org.apache.http.conn.HttpHostConnectException: Connect to localhost:2375 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refusedwindows
1. 首先確保,配置的docker.image.prefix時正確的,即配置了綁定倉庫。centos
1 <properties> 2 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 3 <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 4 <java.version>1.8</java.version> 5 <maven.test.skip>true</maven.test.skip> 6 <spring-cloud.version>Finchley.RELEASE</spring-cloud.version> 7 <dockerfile.maven.version>1.4.3</dockerfile.maven.version> 8 <docker.image.prefix>172.27.73.xx:5000</docker.image.prefix> 9 </properties>
2. 編輯/etc/sysconfig/docker文件,我安裝的docker ce,沒有發現這個文件,若是有,則:服務器
sudo vi /etc/sysconfig/docker //添加下面這行 other_args="-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock" //保存 :wq! //重啓docker服務 service docker restart
3. 在windows系統環境變量中新建DOCKER_HOST值爲tcp://{docker_ip}:2375,將這裏的{docker_ip},替換爲docker所在的centos服務器IP或主機名(用主機名,須要windows配置hosts),可能須要重啓系統。maven
4. 修改/usr/lib/systemd/system/docker.service文件tcp
sudo vi /usr/lib/systemd/system/docker.service //在ExecStart這一行後面加上(這裏就寫4個0,別改爲本身的ip) -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock 改完後效果以下 ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock :wq! 保存退出 從新加載配置文件 systemctl daemon-reload 重啓docker :service docker restart 這樣才能夠是/etc/default/docker中的配置項生效
重寫打包,發佈鏡像,報:測試
Caused by: com.spotify.docker.client.exceptions.DockerException: java.util.concurrent.ExecutionException: com.spotify.docker.client.shaded.javax.ws.rs.ProcessingException: com.spotify.docker.client.shad ed.org.apache.http.conn.HttpHostConnectException: Connect to 172.27.73.xx:2375 [/172.27.73.xx] failed: Connection timed out: connect
咱們首先查詢docker所在虛擬機在監聽哪些端口,使用命令:
netstat -tlunp
顯示:
tcp6 0 0 :::2375 :::* LISTEN -
2375端口,已在監聽。
那頗有可能時防火牆的問題,在CentOS7中,默認會打開firewalld防火牆,若是防火牆打開後,默認狀況下只會監聽在22號端口,也就是說主機對外暴露的端口只有22。
使用以下命令:
sudo iptables-save
查看防火牆暴漏的對外端口,發現2373端口沒有對位暴漏。
須要增長2375端口對外暴漏,使用以下命令:
//添加端口
sudo firewall-cmd --zone=public --add-port=2375/tcp --permanent
//重載防火牆
sudo firewall-cmd --reload
看到sucess字樣後,再使用iptables-save命令查看端口,能夠看到,對外放開的端口增長了2375端口。
此次從新打包,發佈成功。
使用命令:
docker images
查看到新打包的鏡像,注意172.27.73.xx:5000開頭的REPOSITORY列,已添加。