docker 安装请参考: docker - 环境搭建
类似 maven 私服, 便于管理和共享公司私有的镜像
服务端搭建
# 获取镜像
docker pull registry
# 启动容器
docker run -d \
-p 5000:5000 \
--name registry \
--privileged=true \
--restart=always \
-v /root/registry/config.yml:/etc/docker/registry/config.yml \
-v /root/daihongjiao/registry:/var/lib/registry \
registry
# 其中 config.yml 相比默认值, 更改了允许删除, 内容如下
====================
version: 0.1
log:
fields:
service: registry
storage:
delete:
enabled: true
cache:
blobdescriptor: inmemory
filesystem:
rootdirectory: /var/lib/registry
http:
addr: :5000
headers:
X-Content-Type-Options: [nosniff]
health:
storagedriver:
enabled: true
interval: 10s
threshold: 3
====================
客户端访问
- 接口文档
https://docs.docker.com/registry/spec/api/
- web-client
如果需要在 web 中浏览和删除私服中的镜像, 可以参考
https://hub.docker.com/r/hyper/docker-registry-web/
补充说明
本文启动的 registry 服务端, 不开启用户认证, 不开启 https 证书认证, 客户端的 docker 访问时, 需要配置信任IP
# 修改配置文件
less /etc/docker/daemon.json
# 配置 url
===========
{
"insecure-registries": ["192.168.x.x:5000"]
}
===========
# 重启 docker
systemctl daemon-reload
systemctl restart docker
# 服务端验证: 查看仓库中的 repo
curl -XGET http://192.168.x.x:5000/v2/_catalog
# 客户端验证: push 镜像到仓库
docker tag aaa:bbb 192.168.x.x:5000/aaa:bbb
docker push 192.168.x.x:5000/aaa:bbb
curl -XGET http://192.168.x.x:5000/v2/_catalog