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"]}

目录
打赏
0
0
0
0
19
分享
相关文章
docker私有仓库harbor安装
通过以上步骤,您可以成功在企业内部安装和配置Harbor私有仓库,方便地管理和分发Docker镜像。Harbor不仅提供了基础的镜像管理功能,还增强了安全性、身份管理和审计功能,使其成为企业级容器镜像管理的理想选择。
117 22
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
本文主要讲解了Docker的安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库以及Docker容器虚拟化与传统虚拟机比较。
3424 12
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
|
6月前
|
Docker自建仓库之Harbor高可用部署实战篇
关于如何部署Harbor高可用性的实战教程,涵盖了从单机部署到镜像仓库同步的详细步骤。
224 15
部署Kubernetes客户端和Docker私有仓库的步骤
这个指南涵盖了部署Kubernetes客户端和配置Docker私有仓库的基本步骤,是基于最新的实践和工具。根据具体的需求和环境,还可能需要额外的配置和调整。
145 1
Docker自建仓库之Harbor部署实战
关于如何部署和使用Harbor作为Docker企业级私有镜像仓库的详细教程。
1415 12
|
6月前
|
Docker Hub镜像公共仓库使用
这篇文章介绍了如何使用Docker Hub公共仓库进行镜像的创建、上传、下载和管理。
3540 8
Docker自建仓库之Docker Registry部署实战
关于如何使用Docker Registry镜像搭建本地私有Docker仓库的实战教程,包括了下载镜像、创建授权目录和用户名密码、启动Registry容器、验证端口和容器、测试登录仓库、上传和下载镜像的详细步骤。
1653 5
入职必会-开发环境搭建50-Docker必会搭建Docker私有仓库
Docker官方的Docker hub(https://hub.docker.com)是一个用于管理公共镜像的仓库,我们可以从上面拉取镜像到本地也可以把我们自己的镜像推送上去。但是有时候我们的服务器无法访问互联网或者不希望将自己的镜像放到公网当中,那么我们就需要搭建自己的Docker私有仓库来存储和管理自己的Docker镜像。
入职必会-开发环境搭建50-Docker必会搭建Docker私有仓库
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等