天天看點

使用registry:2.8鏡像搭建docker私有倉庫registry服務

作者:同福程式設計

1. 介紹

1.1 介紹

要學習docker首先要學會管理docker鏡像,docker鏡像的擷取方式包括:

  • 官方拉取(pull)
  • 導出/導入(export/import)
  • 儲存/加載(save/load)
  • Dockerfile

這裡面大家最常用的方式還是官方拉取,但是官方鏡像源的伺服器在美國,我們這邊下載下傳速度沒法保證。即便用了很多國内的鏡像源的伺服器,穩定性還是得不到保證。最好的辦法就是把鏡像放到本地,這樣就可以放心使用了~

要把鏡像存在本地伺服器上就需要搭建docker私有倉庫registry服務,福哥今天就要在TFCentOS7x64伺服器上搭建一個registry服務,一起來吧~~

1.2 環境

鏡像版本 registry:2.8
服務IP 192.168.168.68
服務端口 5000
SSL
認證
作業系統 CentOS 7 x86_64 2009
伺服器 TFCentOS7x64
IP 192.168.168.68

2. 安裝

2.1 設定國内鏡像源

這個直接從美國docker鏡像伺服器下載下傳鏡像實在太慢了,動不動就卡住一動不動。為了解決這個問題,福哥決定先把國内鏡像源添加進來,讓docker盡可能地從國内鏡像伺服器下載下傳,提高速度!

設定docker國内鏡像源的方法就是在/etc/docker/daemon.json裡面添加registry-mirrors設定。

{
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn", 
    "http://hub-mirror.c.163.com"
  ]
}           
使用registry:2.8鏡像搭建docker私有倉庫registry服務

設定完了需要重新開機docker服務才能生效!

systemctl restart docker           
使用registry:2.8鏡像搭建docker私有倉庫registry服務

重新開機完了使用docker info看看我們設定的國内鏡像源是不是生效了!

docker info           
使用registry:2.8鏡像搭建docker私有倉庫registry服務

2.2 選擇鏡像

registry服務本身也是基于docker部署的,registry鏡像的位址如下:

https://hub.docker.com/_/registry/tags

使用registry:2.8鏡像搭建docker私有倉庫registry服務

鏡像版本2.8:

2.3 拉取鏡像

使用如下的指令拉取registry鏡像。

docker pull registry:2.8           
使用registry:2.8鏡像搭建docker私有倉庫registry服務

2.4 修改鏡像标簽

使用docker tag把registry:2.8鏡像改成registry.tongfu.net:5000私有倉庫下的。

docker tag registry:2.8 registry.tongfu.net:5000/registry:2.8
docker rmi registry:2.8           
使用registry:2.8鏡像搭建docker私有倉庫registry服務

使用docker images檢視一下改玩的鏡像名稱包含registry.tongfu.net:5000了。

docker images           
使用registry:2.8鏡像搭建docker私有倉庫registry服務

2.5 持久化目錄

建立私有倉庫的持久化目錄/tongfu.net/data/docker/data/registry。

mkdir -p /tongfu.net/data/docker/data/registry           
使用registry:2.8鏡像搭建docker私有倉庫registry服務

2.6 啟動容器

啟動registry容器,取名registry,總是自動啟動,綁定主機IP位址192.168.168.68上的5000端口,映射前面建立的持久化目錄。

docker run -tid \
--name registry \
-h registry \
--restart always \
-p 192.168.168.68:5000:5000 \
-v /tongfu.net/data/docker/data/registry:/var/lib/registry \
registry.tongfu.net:5000/registry:2.8           
使用registry:2.8鏡像搭建docker私有倉庫registry服務

2.7 本地dns解析

建立本地dns解析記錄,将192.168.168.68解析到registry.tongfu.net上面,通過域名操作私有倉庫registry更友善。

192.168.168.68   registry.tongfu.net           
使用registry:2.8鏡像搭建docker私有倉庫registry服務

2.8 解決HTTPS問題

預設情況下私有倉庫是在HTTPS下使用的,但是HTTPS是需要SSL證書的,咱們沒那個進階貨(其實是福哥懶得去搞,以後會教給大家哈),是以要解決這個強制HTTPS的問題。

docker可以通過/etc/docker/daemon.json進行一些配置,要解決HTTPS的問題就要在這個裡面把我們的私有倉庫位址添加進來。

{
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn", 
    "http://hub-mirror.c.163.com"
  ],
  "insecure-registries": [
    "registry.tongfu.net:5000"
  ]
}           
使用registry:2.8鏡像搭建docker私有倉庫registry服務

添加完之後還需要重新開機docker服務。

systemctl restart docker           

重新開機完了在用docker info看看。

docker info           
使用registry:2.8鏡像搭建docker私有倉庫registry服務

這個insecure-registries需要在私有倉庫端和用戶端都配置一遍才行!

3. 使用

3.1 檢視私有倉庫

使用下面的指令檢視私有倉庫裡面的鏡像,目前私有倉庫裡是空的。

curl registry.tongfu.net:5000/v2/_catalog           
使用registry:2.8鏡像搭建docker私有倉庫registry服務

3.2 拉取centos7鏡像

福哥選擇的是centos:centos7.9-2009版本。

docker pull centos:centos7.9.2009           
使用registry:2.8鏡像搭建docker私有倉庫registry服務

3.3 推送centos7鏡像到私有倉庫

現在福哥要把剛剛下載下傳的centos鏡像推送到私有倉庫裡。

docker tag centos:centos7.9.2009 registry.tongfu.net:5000/centos:centos7.9.2009
docker push registry.tongfu.net:5000/centos:centos7.9.2009           
使用registry:2.8鏡像搭建docker私有倉庫registry服務

3.4 檢視私有倉庫

現在再查庫私有倉庫就可以看到剛剛放進去的centos鏡像了。

curl registry.tongfu.net:5000/v2/_catalog           
使用registry:2.8鏡像搭建docker私有倉庫registry服務

再看看centos鏡像的标簽資訊。

curl registry.tongfu.net:5000/v2/centos/tags/list           
使用registry:2.8鏡像搭建docker私有倉庫registry服務

4. 總結

今天福哥在TFCentOS7x64伺服器上面部署了私有倉庫registry服務,後面再有其他伺服器需要下載下傳docker鏡像的時候就可以在這裡直接拉取了,無論是速遞還是穩定性都要有一個質的提升了~~

https://m.tongfu.net/home/35/blog/513969.html