Docker Registry
Docker Registry是官方提供的工具,用于构建私有镜像仓库。
环境搭建
Docker Registry也是Docker Hub提供的一个镜像,可以直接拉取运行。
步骤:
1 拉取镜像 docker pull registry
2 启动Docker Registry docker run -d -p 5000:5000 -v /app/myregistry/:/tmp/registry --privileged=true registry
3 验证(查看私服中的所有镜像) curl -XGET http://0.0.0.0:5000/v2/_catalog
Registry会返回json格式的所有镜像目录
向Registry私仓中上传镜像
docker ps -a查看私服库Registry的网络映射信息(映射网络地址和映射端口)。
配置docker允许接收http请求
修改/etc/docker/daemon.json,添加insecure-registries允许http:
{"registry-mirros": ["https://hdrq9ntj.mirror.aliyuncs.com"],"insecure-registries": ["0.0.0.0:5000"]}
注意json格式要逗号
然后重启docker:(新版本的docker会立即生效)
# centos6 的命令
sudo chkconfig daemon-reload
sudo service docker restart
# centos7 的命令
sudo systemctl daemon-reload
sudo systemctl restart docker
推送到私仓
1 添加一个对应私仓地址的tag
docker tag 镜像ID或镜像名:Tag Host:Port/Repository:Tag
(1)镜像ID或镜像名:要上传到私有库Registry的镜像ID或名字;
(2)Tag:要上传的镜像版本号;
(3)Host:本地私有库的映射网址(本文为0.0.0.0);
(4)Post:本地私有库的映射端口(本文为5000);
(5)Repository:Tag:上传到私有库Registry后自定义的镜像名字、版本号。
2 push到私仓
docker push 符合私服规范的Tag的镜像名称或ID:版本号
防踩坑:由于上一步在配置支持http的时候,重启了docker,所以应该保证Registy是启动状态,才能上传成功,不然会出现如下错误:
3 拉取验证:
docker pull Registry的网络映射:Registry的端口映射/私有库中的镜像名字:版本号
docker pull 0.0.0.0:5000/lee/myubuntu:1.0.1
