docker搭建私有倉庫

一.服務端倉庫(ip:192.168.2.25)
1.拉取registry
docker pull registrynginx

2.運行
docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest docker

參數說明
-itd:在容器中打開一個僞終端進行交互操做,並在後臺運行;
-v:把宿主機的/data/registry目錄綁定 到 容器/var/lib/registry目錄(這個目錄是registry容器中存放鏡像文件的目錄),來實現數據的持久化;
-p:映射端口;訪問宿主機的5000端口就訪問到registry容器的服務了;
--restart=always:這是重啓的策略,假如這個容器異常退出會自動重啓容器;
--name registry:建立容器命名爲registry,你能夠隨便命名;
registry:latest:這個是剛纔pull下來的鏡像;json

3.測試
[root@registry ~]# curl http://127.0.0.1:5000/v2/_catalog
{"repositories":[]}服務器

由於沒有鏡像,因此是空的curl


二.客戶端測試

1.修改下鏡像源並重啓docker服務
#vi /etc/docker/daemon.json
{
"registry-mirrors": [ "https://registry.docker-cn.com"]
}url

# systemctl restart dockerrest

2.拉取一個鏡像
#docker pull nginxip

3.打標籤
#docker tag docker.io/nginx:latest 192.168.2.25:5000/nginx:lasterit

格式說明:Usage: docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
docker.io/nginx:latest 這是源鏡像,也是剛纔pull下來的鏡像文件;
192.168.2.25:5000/nginx:laster:這是目標鏡像,也是registry私有鏡像服務器的IP地址和端口;

4.修改以http方式上傳到鏡像服務器,並重啓docker
#vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://registry.docker-cn.com"],
"insecure-registries": ["192.168.2.25:5000"]
}
#systemctl restart docker

5.上傳鏡像
#docker pull 192.168.2.25:5000/nginx:laster

6.刪除本地鏡像
#docker rmi -f $(docker images -aq)

7.拉取鏡像
#docker pull 192.168.2.25:5000/nginx:laster

8.列出全部鏡像
#curl 192.168.2.25:5000/v2/_catalog

{"repositories":["nginx"]}

相關文章
相關標籤/搜索