1. 程式人生 > >手動搭建Docker本地私有鏡像倉庫

手動搭建Docker本地私有鏡像倉庫

src entos sysconfig 安裝docker 技術分享 環境 epo always _for

實驗環境:兩個Centos7虛擬機,一個是Server,用作客戶端,另一個是Registry,用作Docker私有鏡像倉庫。

基礎配置

查看一下兩臺虛擬機的IP地址
Server的IP地址是192.168.134.151.
技術分享圖片

Registry的IP地址是192.168.134.150.
技術分享圖片

使用setenforce 0臨時關閉SElinux。

打開ServerRegistry的內核轉發功能
編輯配置文件/etc/sysctl.conf,添加下面的內容:

net.ipv4.ip_forward = 1 
net.ipv4.conf.default.rp_filter = 0 
net.ipv4.conf.all.rp_filter = 0 

技術分享圖片
修改完成後使用sysctl –p命令生效。
技術分享圖片

Docker配置

1.Docker環境安裝
ServerRegistry兩臺機器上使用yum install -y docker命令安裝docker環境。
技術分享圖片
技術分享圖片

2.配置Docker配置文件
ServerRegistry上編輯/etc/sysconfig/docker文件添加如下兩行:

ADD_REGISTRY='--add-registry 192.168.134.150:5000' 
INSECURE_REGISTRY='--insecure-registry 192.168.134.150:5000'

這裏是將docker image

的獲取地址改為從本地私有Registry獲取。
技術分享圖片
使用systemctl restart docker命令重啟一下docker。

3.設置Docker服務
設置docker開機自啟

systemctl enable docker

技術分享圖片

4.配置鏡像倉庫
先把等會要用到的兩個鏡像的tar包放到/root目錄下。
技術分享圖片

接著手動加載鏡像,加載registry鏡像並使用再將他上傳至私有鏡像倉庫,因為registry容器要用於其他容器的註冊,所以先將他啟動。搭建私有鏡像倉庫必須要先將registry容器啟動
使用的命令如下:

docker load < registry_latest.tar   //加載鏡像
docker images  //查看剛剛加載的鏡像的ID
docker run -d -p 5000:5000 --restart=always --name registry registry:latest  //啟動registry容器
docker tag 鏡像ID registry:latest  //給registry鏡像打上新tag(可以省去此步)
docker push registry:latest   //將registry鏡像上傳至私有鏡像倉庫(可以省去此步)

技術分享圖片
這時使用docker images查看一下本地鏡像。
技術分享圖片
可以看到下面一個就是我剛剛重新打tag的鏡像。

現在上傳一個owncloud鏡像。
技術分享圖片
這裏可以看到上傳完之後的鏡像是沒有tag的,所以我們給他打上tag,就可以看出來了。
技術分享圖片
接著將他上傳至私有鏡像倉庫。
全部命令如下:

docker load < owncloud.tar   //加載鏡像
docker images  //查看剛剛加載的鏡像的ID
docker tag 鏡像ID owncloud:latest  //給owncloud鏡像打上tag
docker push owncloud:latest   //將owncloud鏡像上傳至私有鏡像倉庫

我這裏私有鏡像倉庫的默認位置在/var/lib/docker/volumes/022dbe58afaec96083a1ceb3fb6672c7a62be38a5a48158322d75d2e6b1150c3/_data/docker/registry/v2/repositories/下。
查看一下
技術分享圖片
這裏可以看到我上傳至私有鏡像倉庫的鏡像文件。

驗證

驗證一下私有鏡像是否搭建成功
到server上拉取owncloud鏡像試一下。
技術分享圖片
這裏可以看到他是從192.168.134.150 Registry鏡像倉庫拉取的鏡像。
到此實驗成功!

手動搭建Docker本地私有鏡像倉庫