一,部署Registry
- docker pull registry
- docker run -d -p 5000:5000 -v /myregistry:/var/lib/registry registry
-d 是后台启动容器。
-p 将容器的 5000 端口映射到 Host 的 5000 端口。5000 是 registry 服务端口。
-v 将容器 /var/lib/registry 目录映射到 Host 的 /myregistry,用于存放镜像数据。
上传到本地的镜像保存在/myregistry/docker/registry/v2/repositories/ 下面
验证是否成功:
浏览器访问http://服务器IP:5000/v2/_catalog
{“repositories”: []} 表示现在仓库中,没有镜像images
上传本地仓库
添加tag:
docker tag gla.com/metadata-app 192.168.26.192:5000/gla-app-metada
上传到本地仓库中:
docker push 192.168.26.192:5000/gla-app-metadata
上传后可验证是否成功:curl 127.0.0.1:5000/v2/_catalog
问题排查:在push镜像的时候出现问题,可能是因为我们启动的registry服务不是安全可信赖的.这个时候我们需要修改docker的配置文件
配置https权限支持
vi /etc/docker/daemon.json
配置:“insecure-registries”:[“192.168.26.192:5000”]
{
"hosts":["tcp://0.0.0.0:2375","unix:///var/run/docker.sock"],
"insecure-registries":["192.168.26.192:5000"]
}
删除下载的镜像,从本地镜像下载。
docker rmi 192.168.26.192:5000/gla-app-metadata 删除镜像
docker pull 从本地镜像下载。
docker images 查看下载成功
删除容器里的镜像文件
进入 docker registry 容器中
docker exec -it registyr /bin/sh
删除 repo
rm -rf /var/lib/registry/docker/registry/v2/repositories/oldboy
清除掉 blob
registry garbage-collect /etc/docker/registry/config.yml