之前执行 docker pull的命令都是从 docker hub上拉取的,是docker 公共仓库,如果在公司中使用docker,我们不可能把自己的镜像上传到公共仓库,这个时候就需要一个自己的仓库(私有仓库),在局域网之内搭建,既可以提升下载镜像的速度,也可以避免内部的镜像暴露出去。
下面开始操作:
先下载 registry从公共仓库内:docker pull registry:latest
进入/etc/docker/daemon.json中进行添加:
{ "insecure-registries": ["192.168.179.26:5000"], "registry-mirrors": ["https://qsbjyy3o.mirror.aliyuncs.com"] }
重启 docker 服务:systemctl restart docker.service
启动 registry 服务 :docker run -itd -v /data/registry:/var/lib/registry --restart always -p 5000:5000 --name registry registry:latest
也可以使用 docker images | grep nginx 查看是否启动
下面进行测试:
先用tag进行修改镜像名: (选择之前做LNMP的nginx镜像)
docker tag nginx:lnmp 192.168.179.26:5000/nginx:latest
格式:IP:端口/名字:标签
然后进行推送:
完成后进行查询:
登录:http://192.168.179.26:5000/v2/_catalog
也可以对标签进行查看:
登录:登录:http://192.168.179.26:5000/v2/nginx/tags/list
也可以进行从私有仓库进行下载的操作:
问:你是如何指向 docker的私有仓库?
在 /etc/docker/daemon.json 的文件中的 insecure-registries 后加入 私有仓库的URL。
但是 registry私有仓库是 json形式的键值对,对管理不友好,所以就引进了 Docker Harbor 下一章介绍!