Docker如何搭建私有仓库
作者:Docker搭建私有仓库
文章介绍了如何搭建私有仓库并使用Docker进行镜像的管理和推送,首先,搭建私有仓库并配置非HTTPS访问(适用于Ubuntu、Debian和CentOS),然后,使用Docker命令标记、推送和拉取镜像,最后,通过curl命令查看仓库中的镜像列表
搭建私有仓库
安装运行 docker-registry
查看docker存储路径与对应路径下的大小
docker info | grep Dir
查看对应路径下的大小
du -sh /var/lib/docker
如果大小没有问题的话就可以直接安装了
拉取registry镜像并运行
docker run -d \ -p 5000:5000 \ -v /yourDataPath:/var/lib/registry \ registry
使用 docker ps 指令查看容器是否正常运行,部署完成
配置非 https 仓库地址
因为 Docker 默认不允许非 HTTPS
方式推送镜像。我们可以通过 Docker 的配置选项来取消这个限制,或者查看下一节配置能够通过 HTTPS
访问的私有仓库。
Ubuntu 16.04+, Debian 8+, centos 7配置方法,对于使用 systemd
的系统,请在 /etc/docker/daemon.json
中写入如下内容(如果文件不存在请新建该文件)
{ "registry-mirrors": [ "https://hub-mirror.c.163.com", "https://mirror.baidubce.com" ], "insecure-registries": [ "YOUR IPADDR:5000" ] }
更新配置
给dockerd 发送 SIGHUP 信号,dockerd 收到信号后会 reload 配置,查看Insecure Registries是否生效
kill -SIGHUP $(pidof dockerd) docker info
在私有仓库上传、搜索、下载镜像
**创建好私有仓库之后,就可以使用 docker tag
来标记一个镜像,然后推送它到仓库。例如私有仓库地址为 127.0.0.1:5000
。
**使用 docker tag
将 hello-world :latest这个镜像标记为 127.0.0.1:5000/hello-world:latest
。
格式为
docker tag IMAGE[:TAG] [REGISTRY_HOST[:REGISTRY_PORT]/]REPOSITORY[:TAG]
docker tag hello-world:latest 127.0.0.1:5000/hello-world:latest
使用 docker push
上传标记的镜像。
docker push 127.0.0.1:5000/hello-world
用curl查看仓库中的镜像
curl 127.0.0.1:5000/v2/_catalog
先删除已有镜像
docker rmi REPOSITORY
再尝试从私有仓库中下载这个镜像
docker pull 127.0.0.1:5000/hello-world
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。