docker19.03搭建私有容器倉庫


一,啟動docker后,搜索registry

[root@localhost source]# systemctl start docker
[root@localhost source]# docker search registry
NAME                                 DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
registry                             The Docker Registry 2.0 implementation for s…   2873                [OK]      

 

說明:劉宏締的架構森林是一個專注架構的博客,地址:https://www.cnblogs.com/architectforest

         對應的源碼可以訪問這里獲取: https://github.com/liuhongdi/

 說明:作者:劉宏締 郵箱: 371125307@qq.com

 

二,下載registry容器

1,下載

[root@localhost docker]# docker pull registry

 

2,查看本地的鏡像:

[root@localhost docker]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
registry            latest              708bc6af7e5e        6 weeks ago         25.8MB

 

三,啟動registry

1,啟動registry

[root@localhost docker]# docker run -d -p 5000:5000 -v /data/docker/registry:/var/lib/registry --privileged=true --restart=always --name registry registry:latest
0e48cc6c0871bf2d5a0ee0208d3e87ae0cf4706dada93c7e80133fa22f7bbaef

 

[root@localhost docker]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
0e48cc6c0871        registry:latest     "/entrypoint.sh /etc…"   7 seconds ago       Up 5 seconds        0.0.0.0:5000->5000/tcp   registry

 

2,查看registry的ip地址

[root@localhost docker]# docker inspect registry | grep IPAddress
            "SecondaryIPAddresses": null,
            "IPAddress": "172.17.0.2",
                    "IPAddress": "172.17.0.2",

 

3,用瀏覽器訪問5000端口,判斷是否安裝成功:

這個地址:

http://172.17.0.2:5000/v2/

 

四,查看私有庫的鏡像列表:

[root@localhost docker]# curl http://172.17.0.2:5000/v2/_catalog
{"repositories":[]}

 

五,我們制作一個基於centos8的nfs的鏡像

參見:

docker19.03制作一個基於centos8的帶有nfs4服務的鏡像
地址:https://www.cnblogs.com/architectforest/p/12495958.html

 

六,上傳一個鏡像到私有庫

我們把上面制作的鏡像上傳到我們搭建的私有庫

1,給當前鏡像打上tag:

[root@localhost ~]# docker tag nfsnginx:0.1 172.17.0.2:5000/nfsnginx:0.1

 

查看打tag后的效果

[root@localhost ~]# docker images | grep nfsnginx
172.17.0.2:5000/nfsnginx   0.1                 fa72df9fb744        3 hours ago         328MB
nfsnginx                   0.1                 fa72df9fb744        3 hours ago         328MB

 

2,開始push

[root@localhost ~]# docker push 172.17.0.2:5000/nfsnginx:0.1
The push refers to repository [172.17.0.2:5000/nfsnginx]
Get https://172.17.0.2:5000/v2/: http: server gave HTTP response to HTTPS client

 

這個報錯是什么?

Docker與Docker Registry交互默認使用https協議,

我們搭建的Docker Registry只提供http服務,

當和Registry私有倉庫交互時會失敗,

為解決這個問題,我們啟動Docker時配置Registry不安全選項即可

說明:要用防火牆限制私有庫的訪問,不允許端口從公網上隨便訪問

 

3,解決上面的那個報錯:

[root@localhost ~]# vi /etc/docker/daemon.json

 

增加一行:

"insecure-registries":["172.17.0.2:5000"]

 

看例子:

[root@localhost ~]# more /etc/docker/daemon.json 
{
    "registry-mirrors":["https://o3trwnyj.mirror.aliyuncs.com"],
    "insecure-registries":["172.17.0.2:5000"]
}

 

然后重啟docker服務:

[root@localhost ~]# systemctl restart docker

 

並再次啟動容器

[root@localhost ~]# docker start registry
registry

 

4,再次push:

[root@localhost ~]# docker push 172.17.0.2:5000/nfsnginx:0.1
The push refers to repository [172.17.0.2:5000/nfsnginx]
28dd39094cf0: Pushed 
0683de282177: Pushed 
0.1: digest: sha256:98417504960cfd0c3ddbb61f18ac8ed7e4737136cc8640f1d24c0f8f5d4eb1fe size: 741

 

5,上傳是否成功?我們從瀏覽器訪問這個地址:

http://172.17.0.2:5000/v2/_catalog

 

響應內容為:

{"repositories":["nfsnginx"]}

 

可以確認已上傳成功

 

6,查看已上傳鏡像的tag列表:

從瀏覽器訪問這個地址:

http://172.17.0.2:5000/v2/nfsnginx/tags/list

 

說明:nfsnginx是我們所上傳的鏡像的名字

 

七,從私有庫下載一個鏡像

從另一台安裝有docker的服務器上測試:

1,執行docker的pull命令:

[root@localhost liuhongdi]# docker pull 192.168.1.8:5000/nfsnginx:0.1
Error response from daemon: Get https://192.168.1.8:5000/v2/: http: server gave HTTP response to HTTPS client

 

說明:192.168.1.8是上面搭建registry的docker宿主機的ip

 

2,解決方法同上:

[root@localhost liuhongdi]# vi /etc/docker/daemon.json

 

增加一行:

"insecure-registries":["192.168.1.8:5000"]

 

然后重啟docker:

[root@localhost liuhongdi]# systemctl restart docker

 

3,再次測試:

[root@localhost liuhongdi]# docker pull 192.168.1.8:5000/nfsnginx:0.1
0.1: Pulling from nfsnginx
8a29a15cefae: Already exists 
b3f2d668510c: Pull complete 
Digest: sha256:98417504960cfd0c3ddbb61f18ac8ed7e4737136cc8640f1d24c0f8f5d4eb1fe
Status: Downloaded newer image for 192.168.1.8:5000/nfsnginx:0.1

 

4,查看下載是否成功

[root@localhost liuhongdi]# docker images | grep nfsnginx
192.168.1.8:5000/nfsnginx   0.1                 fa72df9fb744        4 hours ago         328MB

 

 八,查看docker的版本 

[root@localhost source]# docker --version
Docker version 19.03.7, build 7141c19


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM