docker registry快速搭建

1. Registry介紹

官方的Docker hub是一個用於管理公共鏡像的好地方,我們可以在上面找到我們想要的鏡像,也可以把我們自己的鏡像推送上去。但是,Docker hub私有鏡像個數限制,同時國內訪問速度受限制。

官方在Docker hub上提供了registry的鏡像,我們可以直接使用該registry鏡像來構建一個容器,搭建我們自己的私有倉庫服務。

2. Registry的部署

  1. 編寫docker-compse 腳本compose-registry.yml :
registry:
   container_name: registry
   image: registry:latest
   port:
      - 5000:5000
   volumes:
      - /opt/registry:/var/lib/registry
    restart: always
  1. 運行如下命令:
[root@iZm5ee3t4tj14j1vdg6oozZ ~]#  docker-compose -f compose-registry up -d registry
[root@iZm5ee3t4tj14j1vdg6oozZ ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
10cf04d93d95        registry:latest     "/entrypoint.sh /etc…"   6 minutes ago       Up 6 minutes        0.0.0.0:5000->5000/tcp   registry

  1. registry容器啓動後,打開瀏覽器輸入http://ip_add:5000/v2/,看到下面情況說明registry運行正常
    訪問:
[root@iZm5ee3t4tj14j1vdg6oozZ ~]# curl -XGET http://ip_add:5000
{}[root@iZm5ee3t4tj14j1vdg6oozZ ~]# 
  1. 測試上傳鏡像到Registry
[root@iZm5ee3t4tj14j1vdg6oozZ ~]# docker tag hello-world:latest ip_add:5000/hello-world:1.0
[root@iZm5ee3t4tj14j1vdg6oozZ ~]# docker images
REPOSITORY                        TAG                 IMAGE ID            CREATED             SIZE
registry                          latest              f32a97de94e1        8 months ago        25.8MB
ip_add:5000/hello-world   1.0                 fce289e99eb9        10 months ago       1.84kB
hello-world                       latest              fce289e99eb9        10 months ago       1.84kB
registry                          2.5.0               c6c14b3960bd        3 years ago         33.3MB
  1. 上傳j鏡像到Registry私有倉庫
    [root@iZm5ee3t4tj14j1vdg6oozZ ~]# docker push 115.28.137.160:5000/hello-world:1.0
    The push refers to repository [ip_add:5000/hello-world]
    af0b15c8625b: Layer already exists
    1.0: digest: sha256:92c7f9c92844bbbb5d0a101b22f7c2a7949e40f8ea90c8b3bc396879d95e899a size: 524

注意:

 可能會出現無法push鏡像到私有倉庫的問題。提示:

這是因爲我們啓動的registry服務不是安全可信賴的。這時需要修改客戶端docker的配置文件/etc/docker/daemon.json,添加下面藍色的內容(registry服務地址):

{
“insecure-registries”: [“x.x.x.x:5000”]
}

修改好之後需要重啓Docker服務才能生效,執行命令:systemctl restart docker ,再push即可

push成功之後,查看本地/opt/registry目錄下已經有了剛推送上來的registry鏡像,也可以在瀏覽器中輸入http://ip_add:5000/v2/_catalog

[root@iZm5ee3t4tj14j1vdg6oozZ ~]# curl -XGET http://ip_add:5000/v2/_catalog
{"repositories":["hello-world"]}
發佈了9 篇原創文章 · 獲贊 13 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章