docker 私有鏡像倉(cāng)庫(kù)

前言

構(gòu)建docker鏡像私有倉(cāng)庫(kù)

環(huán)境

操作系統(tǒng):centos7
Docker version 18.09

正文

配置基礎(chǔ)環(huán)境

yum加速源配置
yum install -y wget
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum makecache
docker加速源配置
mkdir /etc/docker
cat > /etc/docker/daemon.json << EOF
{
  "registry-mirrors": ["https://jzngeu7d.mirror.aliyuncs.com"]
}
EOF
安裝docker
yum install -y yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum install docker-ce-18.09.3 -y
systemctl enable docker
防火墻配置

除非你知道怎么配置防火墻,否則此時(shí)還是關(guān)閉掉。

systemctl disable firewalld
systemctl stop firewalld
systemctl disable iptables
systemctl stop iptables

啟動(dòng)鏡像倉(cāng)庫(kù)

  1. 創(chuàng)建鏡像存放位置:
mkdir /opt/registry
  1. 啟動(dòng)倉(cāng)庫(kù)
docker run -d -p 5000:5000 -v /opt/registry:/var/lib/registry/docker/registry --restart always --name registry registry:2

管理鏡像倉(cāng)庫(kù)

將鏡像推送到私有倉(cāng)庫(kù)
  1. 更新鏡像的tag
    從官網(wǎng)拉取一個(gè)測(cè)試鏡像:
docker pull busybox:latest
docker tag busybox:latest 127.0.0.1:5000/busybox:latest

這里的 "busybox:latest" 是指 "鏡像名:tag"。"127.0.0.1:5000/" 是倉(cāng)庫(kù)的地址。

  1. 推送鏡像到私有倉(cāng)庫(kù)
docker push 127.0.0.1:5000/busybox:latest
查看倉(cāng)庫(kù)中的鏡像
curl <IP>:5000/v2/_catalog

注意替換IP為實(shí)際倉(cāng)庫(kù)地址

刪除私有倉(cāng)庫(kù)中的鏡像

TODO

刪除私有倉(cāng)庫(kù)中的鏡像某個(gè)tag

需要修改配置文件,由于使用的鏡像自帶的配置文件,因此進(jìn)入容器(鏡像倉(cāng)庫(kù))修改配置文件,配置文件路徑:/etc/docker/registry/config.yml
增加如下紅框內(nèi)容:


image.png

修改完畢后,重啟容器。

刪除鏡像的某個(gè)tag,包含兩個(gè)重要信息:鏡像名稱、tag。
但是在刪除操作時(shí),不能直接使用tag,因此其中涉及到一些轉(zhuǎn)換步驟。

  1. 獲取鏡像tag對(duì)應(yīng)的digest(類似于id)
curl -I --header "Accept: application/vnd.docker.distribution.manifest.v2+json"  <IP>/v2/<image_name>/manifests/<tag>

注意替換IPimage_name、tag。這里的IP就是倉(cāng)庫(kù)的地址。
執(zhí)行成功后,會(huì)返回一串信息,其中 Docker-Content-Digest 對(duì)應(yīng)的值就是我們需要的 digest

  1. 開(kāi)始刪除
curl -I -X DELETE <IP>:5000/v2/<image_name>/manifests/<digest>

注意替換IP、image_name、digest。

可以直接進(jìn)入鏡像存放路徑,可以查看到該tag已經(jīng)不存在。

使用鏡像倉(cāng)庫(kù)

在搭建好私有倉(cāng)庫(kù)以后,接下來(lái)就是怎么使用。

在另外一臺(tái)安裝了docker的機(jī)器上:

  1. 首先添加私有倉(cāng)庫(kù)信任
    默認(rèn)情況下,無(wú)法從來(lái)源不明的倉(cāng)庫(kù)下載鏡像,需要增加一些配置。
    vim /etc/docker/daemon.json,添加如下內(nèi)容,注意替換ip為自己的倉(cāng)庫(kù)地址。
"insecure-registries" : ["192.168.21.210:5000"]
image.png

添加完畢后,重啟docker

  1. 從私有倉(cāng)庫(kù)拉取鏡像
docker pull 192.168.21.210:5000/busybox:latest

注意替換ip為自己的倉(cāng)庫(kù)地址。
此時(shí)查看鏡像可以看到鏡像已經(jīng)下載下來(lái)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容