docker快速搭建私有鏡像倉庫(registry)

1、說明

Docker 中,當執行 docker pull xxx時,是從 registry.hub.docker.com 這個地址去查找,這就是Docker公司爲我們提供的公共倉庫,上面的鏡像,大家都可以看到,也可以使用,但是速度較慢。並且要在公司中使用 Docker,我們基本不可能把商業項目上傳到公共倉庫中,那如果要多個機器共享,怎麼辦?解決辦法就是搭建私有倉庫。

2、環境

docker服務器地址:10.*.*.87

docker私有倉庫服務器,運行registry容器;

mkdir –p /data/registry #建立鏡像上傳目錄

3、部署(服務端操作)

1)下載鏡像registry

#docker pull registry

#docker images

REPOSITORY TAG      IMAGE ID       CREATED          SIZE

Registry      latest      f32a97de94e1   2 months ago      25.8MB

2)運行registry容器

#docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --name registry registry:latest

參數說明:

-itd:在容器中打開一個僞終端進行交互操作,並在後臺運行;

-v:把宿主機的/data/registry目錄綁定到容器/var/lib/registry目錄(這個目錄是registry容器中存放鏡像文件的目錄),實現數據的持久化;

-p:映射端口;訪問宿主機的5000端口就訪問到registry容器的服務了;

--name registry:創建容器命名爲registry,你可以隨便命名;

registry:latest:上面pull下來的鏡像;

3 測試鏡像倉庫中所有的鏡像

#curl http://127.0.0.1:5000/v2/_catalog

{"repositories":[]}

現在是空的,因爲纔剛運行,裏面沒有任何鏡像內容。

4)創建修改/etc/docker/daemon.json文件:

{

  "registry-mirrors": [ "https://registry.docker-cn.com"],

  "insecure-registries": [ "10.*.*.87:5000"]

}

重啓服務:

#systemctl restart docker

5)爲鏡像打標籤

docker tag centos:latest 10.*.*.87:5000/centos:v1

格式說明:Usage: docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

centos:latest 源鏡像;
10.*.*.87:5000/centos:v1
目標鏡像,也是registry私有鏡像服務器的IP地址和端口;

6 上傳到鏡像服務器

#docker push 10.*.*.87:5000/centos:v1

7)檢查上傳的鏡像

# curl http://127.0.0.1:5000/v2/_catalog  

{"repositories":["centos","test001","ubuntu"]}

列出所有鏡像

# curl http://10.*.*.87:5000/v2/_catalog

{"repositories":["centos","test001","ubuntu"]}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章