目前的Registry是用Go语言编写的,以单个可执行文件形式允许;也提供Docker镜像,直接运行即可。
启动一个仓库实例
docker run -d -p 5000:5000 --name registry registry:2
测试自建仓库
从官方获取镜像,并将镜像存入仓库实例
docker pull ubuntu
docker tag ubuntu localhost:5000/myfirstimage
docker push localhost:5000/myfirstimage
docker pull localhost:5000/myfirstimage
使用自建仓库作为镜像
修改docker配置,从自建仓库获取image,也可以从其它第三方镜像获取,以下为常用第三方镜像
http://hub-mirror.c.163.com http://aad0405c.m.daocloud.io https://pr4tgi96.mirror.aliyuncs.com
修改docker启动配置文件
echo "DOCKER_OPTS=\"--registry-mirror=http://docker-registry.xglabc.com\"" | sudo tee -a /etc/default/docker
重新启动docker使生效
service docker restart
获取镜像,如果自建仓库中没查到image将从官方获取。
docker pull debian
镜像官网仓库
获取image
docker pull debian
设置标签
docker tag debian docker-registry.xglabc.com/library/debian
将image存入自建仓库
docker push docker-registry.xglabc.com/library/debian
删除标签
docker rmi docker-registry.xglabc.com/library/debian
测试获取
docker pull debian
编写镜像脚本
写到一起简化一下,编写一个脚本mirror
1 2 3 4 5 6 7 8 9 10 11 | #!/bin/bash img_name=$1 if [ ! -n "$img_name" ] ;then echo "Please input the image name." else docker pull $img_name && \ docker tag $img_name docker-registry.xglabc.com/$img_name && \ docker push docker-registry.xglabc.com/$img_name && \ docker rmi docker-registry.xglabc.com/$img_name fi |
赋予可执行权限
chmod +x mirror
镜像仓库
mirror consul
查看私有仓库中的内容
https://docker-registry.xglabc.com/v2/_catalog
https://docker-registry.xglabc.com/v2/library/golang/tags/list