溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

配置docker私有倉庫

發(fā)布時間:2020-08-02 15:21:32 來源:網(wǎng)絡(luò) 閱讀:465 作者:學(xué)神MK講師 欄目:軟件技術(shù)

創(chuàng)建docker私有化倉庫

有時候使用Docker Hub這樣的公共倉庫可能不方便(有時候無法訪問),用戶可以創(chuàng)建一個本地倉庫供私人使用,這里使用官方提供的工具docker-registry來配置私有庫

1、使用官方提供的工具來配置

docker-registry 是官方提供的工具,可以用于構(gòu)建私有的鏡像倉庫。

registry [?red??stri] 記錄,登記

私有倉庫好處:

1、節(jié)約帶寬

2、可以自己定制系統(tǒng)

docker-registry這個工具是一個鏡像,直接下載并使用registry鏡像啟動docker實例就可以了。

有了docker以后,所有軟件不再以office.exe 或lrzsz.rpm 形式發(fā)布,而以docker鏡像發(fā)布。你只需要下載docker鏡像并運行一個docker實例。

有了docker以后,再也不用為安裝linux服務(wù)而發(fā)愁!

實驗環(huán)境:

docker私有倉庫地址:192.168.1.63

docker服務(wù)器地址 : 192.168.1.64 ,xuegod64會使用xuegod63上docker私有倉庫來pull/push鏡像

實驗拓撲圖:

配置xuegod63為docker私有倉庫

[root@xuegod63 ~]# systemctl start firewalld #因為后面要使用端口映射

[root@xuegod63 ~]# systemctl enable firewalld

[root@xuegod63 ~]# iptables -F

2、關(guān)閉selinux

[root@xuegod63 ~]#? vim /etc/sysconfig/selinux

改:SELINUX = enforcing

為:SELINUX=disabled

[root@xuegod63 ~]#reboot

[root@xuegod63 ~]# getenforce

Disabled

配置xuegod63為docker私有倉庫服務(wù)端

1.啟動docker

[root@xuegod63 ~]# systemctl start docker

2.拉取registry 鏡像。 registry鏡像中包括搭建本地私有倉庫的軟件:

registry [?red??stri] 記錄,登記 ; pull 拉 ; push 推

把registry.tar上傳到Linux上

方法一:導(dǎo)入本地鏡像:

[root@xuegod63 ~]# docker load -i registry.tar

方法二: 在線導(dǎo)入鏡像,比較慢

[root@xuegod63 ~]# docker pull registry

Using default tag: latest

Trying to pull repository docker.io/library/registry ...

latest: Pulling from docker.io/library/registry

。。。

acf34ba23c50: Waiting

error pulling image configuration: Get https://dseasb33srnrn.cloudfront.net/registry-v2/docker/registry/v2/blobs/sha256/13/136c8b16df203ef26b2f39e24bd3f403b63be67610ec99a5b5af0cceac5c1b51/data?Expires=1491661458&Signature=VpBWJnckUbRqJol8EWTw2ZswQ-xOjrbqDfUstwjJwA55NoaOlESDpUC2AOloQXQRXx~F7-DGwaOY4bjJpdymnVhyv5ylO2ZB1tlkgANsNYhyoKOSyT8IycW94Cee~GaXqdcwkdECsLqWbRW1S297k4jK2GXTtaZqUsBrrmx3oAQ_&Key-Pair-Id=APKAJECH5M7VWIS5YZ6Q: EOF

注: 這是因為訪問不了國外的網(wǎng)址導(dǎo)致的。

解決:多再試試幾次, 終于一次,你不會被墻,可以訪問成功的。

擴展:下載registry鏡像時,有時會訪問不到國外網(wǎng)站,導(dǎo)致下載失敗

3.查看registry鏡像

[root@xuegod63 ~]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

docker.io/registry latest 047218491f8c 3 weeks ago 33.17 MB

擴展.io域名

.io 是[british indian ocean territory] 英屬印度洋領(lǐng)地的簡寫

4. 實戰(zhàn):使用registry鏡像搭建一個私有倉庫

使用registry鏡像搭建一個私有倉庫。 registry鏡像中已經(jīng)把搭建私有庫程序安裝好了,我只需要使用registry鏡像運行一個docker實例就可以了。

默認情況下,Registry程序的存放鏡像信息的目錄是/var/lib/registry目錄下,這樣如果容器被刪除,則存放于容器中的鏡像也會丟失,所以我們一般情況下會指定本地物理機一個目錄如/opt/registry掛載到容器的/var/lib/registry下,這樣兩個目錄下都有!

注:registry運行的實例的默認存儲路徑是/var/lib/registry,只是個臨時目錄,一段時間之后就會消失。所以使用-v參數(shù),指定本地持久的路徑。

registry服務(wù)監(jiān)聽到端口號,默認是5000

[root@xuegod63 ~]# docker run -d -p 5000:5000 -v /opt/registry:/var/lib/registry registry

e4698f625a56661edd2678269215ba42d4fa41c2da881768a741a72b4a3d0c60

[root@xuegod63 ~]# ls /opt/registry # 這個目錄會自動創(chuàng)建

[root@xuegod63 ~]# docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

e4698f625a56 docker.io/registry "/entrypoint.sh /etc/" 7 minutes ago Up 6 minutes 0.0.0.0:5000->5000/tcp suspicious_colden

[root@xuegod63 ~]# netstat -antup | grep 5000

tcp6 0 0 :::5000 :::* LISTEN 4032/docker-proxy

說明,私有庫已經(jīng)啟動成功。

查看私有倉庫中的鏡像列表:

http://192.168.1.63:5000/v2/_catalog #發(fā)現(xiàn),現(xiàn)在還是空的

5.在xuegod64上搭建docker服務(wù)并使用私有倉庫

開啟CENTOS7.4-64-64虛擬機:

1.在線安裝docker

[root@xuegod64 ~]# yum install docker -y

2.修改docker配置文件,指定docker鏡像加速結(jié)點為:私有倉庫的地址

[root@xuegod64 ~]# vim /etc/sysconfig/docker
修改此行

改:4 OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false'

為:OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false --insecure-registry 192.168.1.63:5000'

注:添加紅色標記文字。 --insecure-registry不安全的注冊

[root@xuegod64 ~]# systemctl restart docker #啟動docker服務(wù)

實戰(zhàn)1: 在xuegod64上測試上傳本地鏡像到私有倉庫

1.從Docker HUB 上拉取一個測試鏡像,名字: busybox

方法一:本地導(dǎo)入

上傳busybox.tar鏡像到Linux系統(tǒng)上,作為測試鏡像。

[root@xuegod64 ~]# docker load -i busybox.tar

[root@xuegod64 ~]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

docker.io/busybox latest 00f017a8c2a6 2 weeks ago 1.11 MB

docker.io/registry latest 047218491f8c 3 weeks ago 33.17 MB

注:

BusyBox 概述: BusyBox是一個集成了一百多個最常用Linux命令和工具的軟件。BusyBox 包含了BusyBox 包含了一些簡單的工具,例如ls、cat和echo等等,還包含了一些更大、更復(fù)雜的工具,例grep、find、mount以及telnet。有些人將 BusyBox 稱為 Linux 工具里的瑞士×××。簡單的說BusyBox就好像是個大工具箱,它集成壓縮了 Linux 的許多工具和命令,也包含了 Android 系統(tǒng)的自帶的shell。

瑞士×××見過:1 沒有:2

官網(wǎng): ×××w.busybox.net

方法二:在線安裝

[root@xuegod64 opt]# docker pull busybox

Using default tag: latest

Trying to pull repository docker.io/library/busybox ...

latest: Pulling from docker.io/library/busybox

實驗拓撲圖:

2、創(chuàng)建鏡像鏈接或為基礎(chǔ)鏡像打個標簽(復(fù)制一個鏡像并起一個名字)

語法: docker tag 鏡像名:標簽 私有倉庫地址/鏡像名:標簽

# docker tag docker.io/busybox:latest 192.168.1.63:5000/busybox:latest

注: 不寫鏡像標簽,默認是:latest

[root@xuegod64 ~]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

192.168.1.63:5000/busybox latest 00f017a8c2a6 2 weeks ago 1.11 MB

3、將剛新打好標簽的192.168.1.63:5000/busybox鏡像,push到本地私有倉庫中。

[root@xuegod64 ~]# docker push 192.168.1.63:5000/busybox

4.登錄xuegod64上,查看鏡像的存儲目錄和文件

[root@xuegod63 ~]# rpm -ivh /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm [root@xuegod63 ~]# tree /opt/registry/docker/registry/v2/

。。。

└── busybox

├── _layers

│ └── sha256

│ ├── 00f017a8c2a6e1fe2ffd05c281f27d069d2a99323a8cd514dd35f228ba26d2ff

│ │ └── link

│ └── 04176c8b224aa0eb9942af765f66dae866f436e75acef028fe44b8a98e045515

│ └── link

查看私有倉庫中的鏡像列表:

http://192.168.1.63:5000/v2/_catalog

實戰(zhàn)2:使用私有倉庫中的鏡像

刪除鏡像:

語法: docker rmi 鏡像名:標簽

[root@xuegod64 ~]# docker rmi 192.168.1.63:5000/busybox #刪除鏡像

[root@xuegod64 ~]# docker pull 192.168.1.63:5000/busybox #下載鏡像

[root@xuegod64 ~]# docker images #查看導(dǎo)入的鏡像

REPOSITORY TAG IMAGE ID CREATED SIZE

192.168.1.63:5000/busybox latest 00f017a8c2a6 2 weeks ago 1.11 MB

使用新導(dǎo)入的鏡像,運行一個新docker實例:

[root@xuegod64 ~]# docker run 192.168.1.63:5000/busybox:latest echo "hello"

hello

運行成功。

總結(jié)

搭建私有倉庫步驟:

1、把registry鏡像導(dǎo)入docker

2、基于registry鏡像運行一個docker實例,registry默認監(jiān)聽5000端口

導(dǎo)入鏡像到私有倉庫步驟:

1、安裝docker服務(wù)

2、修改docker 服務(wù) 鏡像源,改成私有倉庫地址: --insecure-registry 192.168.1.63:5000

3、把要導(dǎo)入的鏡像打個標簽如: 192.168.1.63:5000/busybox:latest

4、上傳打了標簽的鏡像到私有倉庫: docker push 192.168.1.63:5000/busybox:latest

私有倉庫的使用:

1、修改docker 服務(wù) 鏡像源,改成私有倉庫地址: --insecure-registry 192.168.1.63:5000

2、下載剛才上傳的鏡像 : docker pull 192.168.1.63:5000/busybox:latest

10.3 使用阿里云私有倉庫存儲自己的docker鏡像

10.3.1 使用阿云的docker私有倉庫

1、登錄阿里云開者平臺

https://dev.aliyun.com/search.html ,在此頁面中點擊“創(chuàng)建命名空間”

創(chuàng)建鏡像倉庫:

然后,選擇當前頁面中的:

點管理,查看使用方法:

登錄阿里云docker registry:

$ sudo docker login --username=446423587@qq.com registry.cn-hangzhou.aliyuncs.com

登錄registry的用戶名是您的阿里云賬號全名,密碼是您開通服務(wù)時設(shè)置的密碼。

我的密碼是: 446423587A

你可以在鏡像管理首頁點擊右上角按鈕修改docker login密碼。

https://cr.console.aliyun.com/?spm=5176.1971733.2.28.4884464bqVSUpv#/imageList

登錄xuegod64將本地鏡像推送到阿里云registry:

1、創(chuàng)建鏡像鏈接或為基礎(chǔ)鏡像打個標簽

[root@xuegod64 ~]# docker login --username=446423587@qq.com registry.cn-hangzhou.aliyuncs.com # 先登錄到阿里云registry

Password: 446423587A

Login Succeeded

查看本地鏡像名或ID
[root@xuegod64 ~]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

。。。

192.168.1.63:5000/busybox latest 00f017a8c2a6 12 months ago 1.11 MB

[root@xuegod64 ~]# docker tag 00f017a8c2a6 registry.cn-hangzhou.aliyuncs.com/xuegod-k8s/busybox:v2

[root@xuegod64 ~]# docker push registry.cn-hangzhou.aliyuncs.com/xuegod-k8s/busybox:v2

在阿里云上查看:

下載一個鏡像:

[root@xuegod64 ~]# docker pull registry.cn-hangzhou.aliyuncs.com/xuegod-k8s/busybox:v2

總結(jié)

10.1 創(chuàng)建docker靜態(tài)化IP

10.2 創(chuàng)建docker私有化倉庫

10.3 使用阿里云私有倉庫存儲自己的docker鏡像

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI