前言
構(gòu)建docker鏡像私有倉庫
環(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
防火墻配置
除非你知道怎么配置防火墻苍苞,否則此時還是關(guān)閉掉。
systemctl disable firewalld
systemctl stop firewalld
systemctl disable iptables
systemctl stop iptables
啟動鏡像倉庫
- 創(chuàng)建鏡像存放位置:
mkdir /opt/registry
- 啟動倉庫
docker run -d -p 5000:5000 -v /opt/registry:/var/lib/registry/docker/registry --restart always --name registry registry:2
管理鏡像倉庫
將鏡像推送到私有倉庫
- 更新鏡像的tag
從官網(wǎng)拉取一個測試鏡像:
docker pull busybox:latest
docker tag busybox:latest 127.0.0.1:5000/busybox:latest
這里的 "busybox:latest" 是指 "鏡像名:tag"。"127.0.0.1:5000/" 是倉庫的地址。
- 推送鏡像到私有倉庫
docker push 127.0.0.1:5000/busybox:latest
查看倉庫中的鏡像
curl <IP>:5000/v2/_catalog
注意替換IP為實際倉庫地址
刪除私有倉庫中的鏡像
TODO
刪除私有倉庫中的鏡像某個tag
需要修改配置文件,由于使用的鏡像自帶的配置文件究恤,因此進入容器(鏡像倉庫)修改配置文件,配置文件路徑:/etc/docker/registry/config.yml
增加如下紅框內(nèi)容:
image.png
修改完畢后,重啟容器柒爵。
刪除鏡像的某個tag,包含兩個重要信息:鏡像名稱赚爵、tag餐弱。
但是在刪除操作時,不能直接使用tag囱晴,因此其中涉及到一些轉(zhuǎn)換步驟膏蚓。
- 獲取鏡像tag對應(yīng)的digest(類似于id)
curl -I --header "Accept: application/vnd.docker.distribution.manifest.v2+json" <IP>/v2/<image_name>/manifests/<tag>
注意替換IP、image_name畸写、tag驮瞧。這里的IP就是倉庫的地址。
執(zhí)行成功后枯芬,會返回一串信息论笔,其中 Docker-Content-Digest 對應(yīng)的值就是我們需要的 digest
- 開始刪除
curl -I -X DELETE <IP>:5000/v2/<image_name>/manifests/<digest>
注意替換IP采郎、image_name、digest狂魔。
可以直接進入鏡像存放路徑蒜埋,可以查看到該tag已經(jīng)不存在。
使用鏡像倉庫
在搭建好私有倉庫以后最楷,接下來就是怎么使用整份。
在另外一臺安裝了docker的機器上:
- 首先添加私有倉庫信任
默認(rèn)情況下,無法從來源不明的倉庫下載鏡像籽孙,需要增加一些配置烈评。
vim /etc/docker/daemon.json
,添加如下內(nèi)容犯建,注意替換ip為自己的倉庫地址讲冠。
"insecure-registries" : ["192.168.21.210:5000"]
image.png
添加完畢后,重啟docker
- 從私有倉庫拉取鏡像
docker pull 192.168.21.210:5000/busybox:latest
注意替換ip為自己的倉庫地址适瓦。
此時查看鏡像可以看到鏡像已經(jīng)下載下來竿开。