手動搭建Docker本地私有鏡像倉庫
實驗環境:兩個Centos7虛擬機,一個是Server,用作客戶端,另一個是Registry,用作Docker私有鏡像倉庫。
基礎配置
查看一下兩臺虛擬機的IP地址
Server的IP地址是192.168.134.151
.
Registry的IP地址是192.168.134.150
.
使用setenforce 0
臨時關閉SElinux。
打開Server
和Registry
的內核轉發功能
編輯配置文件/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環境安裝
在Server
和Registry
兩臺機器上使用yum install -y docker
命令安裝docker環境。
2.配置Docker配置文件
在Server
和Registry
上編輯/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本地私有鏡像倉庫