05-Docker倉庫

訪問Docker倉庫

倉庫(Repository)是集中存放鏡像的地方,又分共有倉庫和私有倉庫。註冊服務器和倉庫有所區別,註冊服務器是存放倉庫的具體服務器,一個註冊服務器可以有多個倉庫,而每個倉庫下可以有多個鏡像,倉庫可以被認爲是一個具體的項目或目錄,如private-docker.com/ubuntu private-docker.com是註冊服務器地址,ubuntu是倉庫名。

公共鏡像市場

Docker Hub是docker官方提供的最大的公共鏡像倉庫,網址https://hub.docker.com 大部分鏡像的需求都可以在Docker hub中直接下載
1、登錄,可以通過命令執行docker login命令來輸入用戶名、密碼和郵件來完成註冊和登錄,註冊成功後本地用戶目錄下會自動穿件.docker/config.json文件,保存用戶的認證信息。
2、基本操作,用戶不需要登錄就可以通過docker search命令來查找官方倉庫的鏡像,並利用docker [image] pull命令來將他下載到本地。
3、自動創建,是docker hub提供的自動化服務,可以自動跟隨項目代碼更新而重新構建鏡像。如創建了一個應用鏡像,如果發佈了新版本需要手動跟新鏡像。而自動創建可以讓用戶通過docker hub指定一個目標網站上的項目,一旦項目發生變化,自動執行創建。
1)創建登錄Docker Hub
2)在目標網站中允許Docker Hub訪問服務
3)在Docker Hub中配置一個自動創建類型的項目
4)選取一個目標網站中的項目和分支
5)指定Dockerfile的位置,並提交創建。

搭建本地私有倉庫

使用registry創建私有鏡像,並啓動。倉庫會被創建在容器的/var/lib/registry目錄下,使用-v參數將鏡像文件存放到指定目錄(本地的/opt/data/registry)下

[root@docker01 ~]# docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry registry:2
Unable to find image 'registry:2' locally
2: Pulling from library/registry
486039affc0a: Pull complete 
ba51a3b098e6: Pull complete 
8bb4c43d6c8e: Pull complete 
6f5f453e5f2d: Pull complete 
42bc10b72f42: Pull complete 
Digest: sha256:7d081088e4bfd632a88e3f3bcd9e007ef44a796fddfe3261407a3f9f04abe1e7
Status: Downloaded newer image for registry:2
7166c8c34d7ff45d5e9200909ea17cebfd3894852cf1f49ee9e944ea1218fd9a

查看已有鏡像並使用tag修改鏡像標記爲10.10.17.199:5000/test

[root@docker01 ~]# docker images
REPOSITORY               TAG                 IMAGE ID            CREATED             SIZE
ubuntu                   18.04               72300a873c2c        2 weeks ago         64.2MB
[root@docker01 ~]# docker tag ubuntu:18.04 10.10.17.199:5000/test

直接上傳標記鏡像會報錯

[root@docker01 ~]# docker push 10.10.17.199:5000/test
The push refers to repository [10.10.17.199:5000/test]
Get https://10.10.17.199:5000/v2/: http: server gave HTTP response to HTTPS client

修改daemon.json文件,重新加載並重起docker,啓動registry

[root@docker01 ~]# vim /etc/docker/daemon.json
{ "insecure-registries":["10.10.17.199:5000"] 
[root@docker01 ~]# systemctl daemon-reload 
[root@docker01 ~]# systemctl restart docker
[root@docker01 ~]# docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry registry:2
b3e4503d76bf818f4d4a8cbb399f2826c335a97d5bae6b21d66d671c4983d99f

上傳標記鏡像

[root@docker01 ~]# docker push 10.10.17.199:5000/test
The push refers to repository [10.10.17.199:5000/test]
1852b2300972: Pushed 
03c9b9f537a4: Pushed 
8c98131d2d1d: Pushed 
cc4590d6a718: Pushed 
latest: digest: sha256:0925d086715714114c1988f7c947db94064fd385e171a63c07730f1fa014e6f9 size: 1152

測試,刪除原有10.10.17.199:5000/test,再pull一個下來

[root@docker01 ~]# docker rmi 10.10.17.199:5000/test
Untagged: 10.10.17.199:5000/test:latest
Untagged: 10.10.17.199:5000/test@sha256:0925d086715714114c1988f7c947db94064fd385e171a63c07730f1fa014e6f9
[root@docker01 ~]# docker pull 10.10.17.199:5000/test
Using default tag: latest
latest: Pulling from test
Digest: sha256:0925d086715714114c1988f7c947db94064fd385e171a63c07730f1fa014e6f9
Status: Downloaded newer image for 10.10.17.199:5000/test:latest
10.10.17.199:5000/test:latest
[root@docker01 ~]# docker images
REPOSITORY               TAG                 IMAGE ID            CREATED             SIZE
10.10.17.199:5000/test   latest              72300a873c2c        2 weeks ago         64.2MB
ubuntu                   18.04               72300a873c2c        2 weeks ago         64.2MB
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章