docker - 镜像仓库私服

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

你可能感兴趣的:(docker - 镜像仓库私服)