Docker Registry 私有仓库搭建
docker 安装 (以Ubuntu为例)
卸载旧版本docker
sudo apt-get remove docker \
docker-engine \
docker.io
使用APT安装
由于 apt 源使用 HTTPS 以确保软件下载过程中不被篡改。因此,我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书。
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
为了确认所下载软件包的合法性,需要添加软件源的 GPG 密钥。
$ curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 官方源
# $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
然后,我们需要向 sources.list 中添加 Docker 软件源
$ echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 官方源
# $ echo \
# "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
# $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
安装docker
更新 apt 软件包缓存,并安装 docker-ce
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
使用脚本自动安装
# $ curl -fsSL test.docker.com -o get-docker.sh
$ curl -fsSL get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh --mirror Aliyun
# $ sudo sh get-docker.sh --mirror AzureChinaCloud
启动docker
$ sudo systemctl enable docker
$ sudo systemctl start docker
镜像加速器
# 可以在 /etc/docker/daemon.json 中写入如下内容
{
"registry-mirrors": [
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com"
]
}
# 之后重新启动服务。
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
搭建docker registry
拉取 registry 镜像
docker pull registry
通过registry镜像启动一个容器
docker run -d -v /opt/docker-registry:/var/lib/registry -p 5000:5000 --name registry registry
查看运行状况
docker ps
验证请求成功
请求 https://192.168.30.142:5000/v2/
如果上传出现报错,因为docker仓库只支持https,http 需要添加信任
方法一:需要将仓库添加到信任仓库
vim /etc/docker/daemon.json
{
"registry-mirrors":[
"http://hub-mirror.c.163.com"
],
"insecure-registries":[
"192.168.30.142:5000"
]
}
方法二:通过创建证书自带的TLS认证
mkdir -p /opt/docker/registry/certs
openssl req -newkey rsa:4096 -nodes -sha256 -keyout /opt/docker/registry/certs/domain.key -x509 -days 365 -out /opt/docker/registry/certs/domain.crt
docker run -d --name registry2 -p 5000:5000 -v /opt/docker-registry/:/var/lib/registry -v /opt/docker/registry/certs:/certs -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key registry:2
curl -X GET https://192.168.30.142:5000/v2/_catalog -k
docker registry v2 api接口
官方地址: docker registry v2 api接口
| method | path | Entity | Description |
|---|---|---|---|
| GET | /v2/ | Base | |
| GET | /v2/ |
Tags | |
| GET | /v2/ |
Manifest | |
| PUT | /v2/ |
Manifest | |
| DELETE | /v2/ |
Manifest | |
| GET | /v2/ |
Blob | |
| DELETE | /v2/ |
Blob | |
| POST | /v2/ |
Initiate Blob Upload | |
| GET | /v2/ |
Blob Upload | |
| PATCH | /v2/ |
Blob Upload | |
| PUT | /v2/ |
Blob Upload | |
| DELETE | /v2/ |
Blob Upload | |
| GET | /v2/_catalog | Catalog |
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 dreamer
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果

