sudo docker pull daocloud.io/registry
安裝倉庫(registry)
使用daocloud/aliyun鏡像吧,官網倉庫真心沒法用
sudo docker run --name registry --restart=always -d -p 5000:5000 registry
-d:啟動一個守護進程程序(長任務)
-p:指定端口號,一般為port1:port2形式,port1是宿主機器監聽的端口,port2是對應的docker監聽的程序
--name:指定鏡像名稱
--restart=alway,隨着docker服務而啟動,同時保留倉庫信息
如果啟動成功,通過
sudo lsof -i:5000
將會看到有docker進程在監聽
sudo docker tag XXXX 10.1.108.108:5000/centos
XXX代表imageID,可以通過sudo docker images中查看,添加了前綴10.1.108.108代表這個鏡像是可以添加到本地(如果指定為127.0.0.1)/遠程(如果指定是遠程IP)倉庫的,在調用push的時候,自動會解析前綴將其提交。
另外注意起的名稱一定要都是小寫,不能有大寫,否則回報錯
sudo docker push 10.1.108.108:5000/centos
將鏡像提交到指定的倉庫(由前綴決定)
sudo docker pull 10.1.108.108:5000/centos
某客戶端從局域網倉庫中拉取docker
碰到的問題:
Error while pulling image: Get http://10.1.108.108:5000/v1/repositories/centos/images: dial tcp 10.1.108.108:5000: getsockopt: connection refused
代表對方並沒有啟動倉庫服務,兩種可能:第一種是IP錯誤;第二種是docker的倉庫服務沒有啟動
Error: image centos:latest not found
沒有將鏡像push到倉庫里面,找不到對應的鏡像(centos:latest)
Get https://10.1.108.108:5000/v1/_ping: http: server gave HTTP response to HTTPS client
這個異常代表服務器端只是支持http,但是客戶端卻使用https;
在客戶端機器上面的/etc/docker/daemon.json里面添加如下內容即可:
{
"insecure-registries" : ["10.1.108.108:5000"]
}
代表向指定register請求的時候不需要https(這個不安全)
如果有多的倉庫,可以在“[]”中添加多個。
這里注意:docker私服配置文件修改后,要重啟docker才能夠生效
sudo docker run --name registry --restart=always -d -p 5000:5000 registry
-d:啟動一個守護進程程序(長任務)
-p:指定端口號,一般為port1:port2形式,port1是宿主機器監聽的端口,port2是對應的docker監聽的程序
--name:指定鏡像名稱
--restart=alway,隨着docker服務而啟動,同時保留倉庫信息