Docker 私有仓库搭建

简介: Docker 私有仓库搭建

环境:



有一个集群, 里面有三台服务器

master: 192.168.1.106

nodes1: 192.168.1.104

nodes2: 192.168.1.105

 

操作系统: 使用的MacOS, windows同样有效


 

一. docker的Registry的安装和配置



选择将nodes1作为镜像仓库.


1. 在node节点上, 获取并安装registry镜像

docker pull registry


2. 启动容器


docker run -p 5000:5000 -v /home/registry_images:/var/lib/registry -d --restart=always registry


这里将registry挂载到了本地home目录, 避免docker重启后, 镜像丢失

 

二. registry的使用



1. 修改master机器上的registry容器为所在的宿主机


/etc/docker/daemon.json
{
  "insecure-registries":["192.168.1.104:5000"], //修改为registry所在容器的宿主机
  "registry-mirrors": ["https://w52p8twk.mirror.aliyuncs.com"]
}

"insecure-registries": 含义是, 192.168.1.104不是一个安全的http请求, 但请信任这个仓库地址.

 

我的registry在node节点上, node的ip是192.168.1.104

2. 重启docker

systemctl daemon-reload
systemctl restart docker

3. 下载一个nginx并上传到Registry仓库

领取nginx镜像
docker pull nginx
改名
docker tag nginx 192.168.1.104:5000/nginx:test

尝试把 192.168.1.104:5000/nginx:test上传到我们的Registry仓库

docker push 192.168.1.104:5000/nginx:test

1187916-20200504213915141-109456106.png


可以成功push, 说明我们的仓库是创建成功了.


4. 下面在其他master和node上做同样的操作. 修改/etc/docker/daemon.json文件


{
  "insecure-registries":["192.168.1.104:5000"],
  "registry-mirrors": ["https://w52p8twk.mirror.aliyuncs.com"]
}


重启docker


systemctl daemon-reload
systemctl restart docker

遇到的问题:



所有设置都没问题, 但是上传就是失败

1187916-20200608115234107-1068947043.png

查询日志

cd /var/log
tail -200f messages

错误信息如下:

1187916-20200608115346133-188018953.png

Attempting next endpoint for push after error: Get https://192.168.198.142:5000/v2/: http: server gave HTTP response to HTTPS client"

出现这个问题有两种情况


1. 没有配置"insecure-registries":["192.168.1.104:5000"],  可以确定我是配置了的, 上面有具体方法

2. 没有关闭防火墙


setenforce 0   //关闭防火墙


查询防火墙


getenforce

1187916-20200608115547321-899176243.png


5. 查询上传到仓库的镜像


有两个方法


方法一: 去镜像仓库地址查询

cd /home/registry_images

详细目录如下:

cd /home/registry_images/docker/registry/v2/repositories

这个目录是我设置的镜像仓库在本地的挂载目录.


方法二: 通过接口查询

curl -XGET http://192.168.1.104:5000/v2/_catalog

{"repositories":["nginx"]}

 

6. 查询仓库的tag标签


curl -XGET http://192.168.1.104:5000/v2/nginx/tags/list

{"errors":[{"code":"NAME_UNKNOWN","message":"repositoryname not known toregistry","detail":{"name":"image_name"}}]}

curl -XGET http://192.168.1.104:5000/v2/nginx/tags/list

{"name":"nginx","tags":["latest"]}

相关文章
|
3月前
|
安全 数据安全/隐私保护 Docker
docker私有仓库harbor安装
通过以上步骤,您可以成功在企业内部安装和配置Harbor私有仓库,方便地管理和分发Docker镜像。Harbor不仅提供了基础的镜像管理功能,还增强了安全性、身份管理和审计功能,使其成为企业级容器镜像管理的理想选择。
212 22
|
5月前
|
Java 应用服务中间件 Linux
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
本文主要讲解了Docker的安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库以及Docker容器虚拟化与传统虚拟机比较。
6273 12
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
|
6月前
|
网络协议 应用服务中间件 nginx
私有的docker私有镜像站仓库harbor
私有的docker私有镜像站仓库harbor
|
7月前
|
存储 Kubernetes Cloud Native
部署Kubernetes客户端和Docker私有仓库的步骤
这个指南涵盖了部署Kubernetes客户端和配置Docker私有仓库的基本步骤,是基于最新的实践和工具。根据具体的需求和环境,还可能需要额外的配置和调整。
171 1
|
7月前
|
应用服务中间件 nginx 数据安全/隐私保护
使用Harbor搭建Docker私有仓库
Harbor是一款开源的企业级Docker仓库管理工具,分为私有与公有仓库两种类型,其中私有仓库被广泛应用于运维场景。Harbor提供图形化界面,便于直观操作,并且其核心组件均由容器构建而成,因此安装时需预先配置Docker及docker-compose。Harbor支持基于项目的用户与仓库管理,实现细粒度的权限控制;具备镜像复制、日志收集等功能,并可通过UI直接管理镜像,支持审计追踪。部署Harbor涉及配置文件调整、登录认证等步骤,并可通过客户端进行镜像的上传、拉取等操作。系统内置多种角色,包括受限访客、访客、开发者、维护人员及管理员,以满足不同场景下的使用需求。
254 0
|
7月前
|
Docker 容器
Docker自建仓库之Harbor高可用部署实战篇
关于如何部署Harbor高可用性的实战教程,涵盖了从单机部署到镜像仓库同步的详细步骤。
260 15
|
7月前
|
存储 测试技术 数据安全/隐私保护
Docker自建仓库之Harbor部署实战
关于如何部署和使用Harbor作为Docker企业级私有镜像仓库的详细教程。
1482 12
|
7月前
|
运维 数据安全/隐私保护 Docker
Docker自建仓库之Docker Registry部署实战
关于如何使用Docker Registry镜像搭建本地私有Docker仓库的实战教程,包括了下载镜像、创建授权目录和用户名密码、启动Registry容器、验证端口和容器、测试登录仓库、上传和下载镜像的详细步骤。
1901 5
|
7月前
|
Docker 容器
Docker Hub镜像公共仓库使用
这篇文章介绍了如何使用Docker Hub公共仓库进行镜像的创建、上传、下载和管理。
4148 8
|
8月前
|
存储 Docker 容器
阿里云私有docker仓库构建海外镜像
【8月更文挑战第25天】
682 3