registry 私有仓库
私有仓库一般是为了公司内部用 方便部门共同访问和下载统一镜像和管理共同开发。或者在公司外网关闭的情况下共享开发镜像。同时下载速度比从网络下载快速
私有仓库搭建种类
1. 使用docker pull registry 镜像搭建
2. linux等下载docker-registry <实际下载安装的是 docker-distribution>
种类一 docker pull registry 使用
- 下载
docker pull registry
- 运行
docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest
3.测试镜像仓库中所有的镜像
curl http://127.0.0.1:5000/v2/_catalog // 目前为空 {"repositories":[]}
- 修改daemon.json
MAC系统
vi ~/.docker/daemon.json
输入:
{
"registry-mirrors" : [
"http://f1361db2.m.daocloud.io",
"https://qo2mkc4h.mirror.aliyuncs.com"
],
"insecure-registries" : [
"127.0.0.1:5000",
"192.168.199.108:5000"
],
"experimental" : true,
"debug" : true
}
然后重启docker
linux 系统
vi /etc/docker/deamon.json
输入:{
"registry-mirrors" : [
"http://f1361db2.m.daocloud.io",
"https://qo2mkc4h.mirror.aliyuncs.com"
],
"insecure-registries" : [
"127.0.0.1:5000",
"192.168.199.108:5000"
]
}
systemctl restart docker // 然后重启docker
- 服务端 清空防火墙设置或者开放5000端口
iptables -F //清空防火墙
firewall-cmd --add-port=5000/tcp --permanent && firewall-cmd --reload //放开5000端口监控
- 修改客户端镜象tag
例如 docker tag busybox:latest 192.169.199.108:5000/busybox:latest
注意 一定要和服务器仓库ip一致 不然无法识别和上传 至于5000端口 应为registry默认5000端口
- 上传
docker push 192.169.199.108:5000/busybox:latest
种类一 docker-registry 使用
- 下载
yum -y install docker-registry
- 修改客户端daemon.json
vi /etc/docker/daemon.json
然后输入
{
"registry-mirrors": ["http://f1361db2.m.daocloud.io","https://qo2mkc4h.mirror.aliyuncs.com"], # 这是配置镜像仓库 我配置的是hub.daocloud.io
"insecure-registries":["192.168.199.108:5000"] # 这个是对私有仓库服务端https过滤拦截注销 允许http访问
}
重启 配置与docker
systemctl daemon-reload
systemctl restart docker
- 清空防火墙设置或者开放5000端口
iptables -F //清空防火墙
firewall-cmd --add-port=5000/tcp --permanent && firewall-cmd --reload //放开5000端口监控
ss -ntl 查看端口是否已经被开放
修改客户端镜象tag
例如 docker tag busybox:latest 192.169.199.108:5000/busybox:latest
注意 一定要和服务器仓库ip一致 不然无法识别和上传 至于5000端口 应为registry默认5000端口
- 上传
docker push 192.169.199.108:5000/busybox:latest
- 查看私有仓库存储位置
cd /var/lib/registry/docker/registry/v2
- 剩下其他命令都和普通的docker命令一样了