docker registry 私有仓库的搭建过程

目录
  • 摘要
  • 一、环境准备
  • 二、配置registry私有仓库
  • 三、上传与下载镜像
  • 四、配置registry加载身份验证
  • 五、 docker registry 私有仓库查询、删除
  • 博文参考

摘要

随着docker使用的镜像越来越多,就需要有一个保存镜像的地方,这就是仓库。目前常用的两种仓库:公共仓库和私有仓库。最方便的就是使用公共仓库上传和下载,下载公共仓库的镜像是不需要注册的,但是上传时,是需要注册的。私有仓库最常用的就是Registry、Harbor两种,那接下来详细介绍如何搭建registry私有仓库。

一、环境准备

两台CentOS7.4,一台为Docker私有仓库;另一台为Docker客户端,测试使用;

二、配置registry私有仓库

#  <!--docker宿主机开启路由功能-->

echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf 

<!--刷新配置-->

sysctl -p

net.ipv4.ip_forward = 1

<!--配置镜像加速-->

vim /etc/docker/daemon.json

 <!--添加阿里云加速--> 

{"registry-mirrors":["https://6kx4zyno.mirror.aliyuncs.com"]} 

<!--重新启动docker服务-->

systemctl reload docker

<!--查找registry镜像-->

docker search registry

docker pull registry

<!--registry镜像可以直接先pull下来,也可以不下载,根据自己情况而定-->

docker run -d -p 5000:5000 --name registry --restart=always -v /opt/registry:/var/lib/registry registry

<!--查看docker运行的容器-->

docker ps

<!--查看docker所有镜像-->

docker images  

<!--配置docker服务支持registry服务-->

vim /etc/docker/daemon.json 

{"registry-mirrors":["https://6kx4zyno.mirror.aliyuncs.com"],
"insecure-registries":["192.168.100.10:5000"]  <!--添加此行-->
}

<!--重新启动docker服务-->

systemctl reload docker 

docker info

三、上传与下载镜像

# 给镜像打标签

docker tag mysql 192.168.25.140:5000/mysql

# 上传的镜像

docker push 192.168.25.140:5000/mysql

<!--客户端安装docker服务,配置镜像加速-->

<!--配置docker支持registry服务 -->

vim /etc/docker/daemon.json 

{"registry-mirrors":["https://6kx4zyno.mirror.aliyuncs.com"],
"insecure-registries":["192.168.100.10:5000"]  <!--添加此行-->
}

<!--重新启动docker服务-->

systemctl restart docker 

 <!--客户端下载私有仓库中的镜像-->

docker pull 192.168.25.140:5000/mysql 

docker images <!--查看镜像是否下载成功-->

四、配置registry加载身份验证

但是现在存在一个问题,如果这也部署的话企业内部所有人员皆可访问我们的私有仓库,为了安全起见,接下来为registry添加一个身份验证,只有通过了身份验证才可以上传或者下载私有仓库中的镜像。

<!--安装加密工具httpd-tools-->

yum -y install httpd-tools  

<!--创建存放验证密钥目录-->

mkdir /opt/registry-auth

<!--配置registry身份验证数据库-->
<!--"-Bbn”参数解释:B强制密码加密;b在命令中输入密码,不提示输入密码;n不更新密钥文件-->

htpasswd -Bbn bob pwd@123 > /opt/registry-auth/htpasswd

<!--删除此服务器上的所有容器,接下来重新生成一个需要身份验证的私有仓库容器-->

 docker run -d -p 5000:5000 --restart=always \
-v /opt/registry-auth/:/auth/ \
-v /opt/registry:/var/lib/registry --name registry-auth -e "REGISTRY_AUTH=htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
-e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" registry 

<!--重新运行一个支持身份验证的registry私有镜像仓库容器-->

docker tag tomcat:latest 192.168.100.10:5000/image/tomcat:1.0 

docker push 192.168.100.10:5000/image/tomcat:1.0

<!--测试不通过身份验证是否可以往私有仓库上传镜像-->

<!--提示没有身份验证,上传不了-->

no basic auth credentials

<!--登录私有镜像仓库,通过身份验证即可上传-->

docker login 192.168.100.10:5000 

Username: bob   <!--输入bob-->
Password:    <!--输入密码-->

<!--再次上传镜像到私有仓库-->

docker push 192.168.100.10:5000/image/tomcat:1.0 

<!--docker客户端不通过身份验证直接下载私有仓库中的镜像直接被拒绝-->

docker pull 192.168.100.10:5000/image/tomcat:1.0

Error response from daemon: Get http://192.168.100.10:5000/v2/image/tomcat/manifests/1.0: no basic auth credentials

<!--登录私有仓库,通过身份验证-->
docker login 192.168.100.10:5000 

Username: bob  <!--输入bob-->
Password:     <!--输入密码-->

docker pull 192.168.100.10:5000/image/tomcat:1.0 <!--下载私有仓库中的镜像-->

<!--查看docker客户端镜像-->

docker images 

五、 docker registry 私有仓库查询、删除

修改tag (以hello-world为例)

拉取镜像

docker pull hello-world

修改镜像

docker tag  hello-world  hub.test.com:5000/hello-world:1.0

上传、删除、再下载镜像,删除后能下载成功

docker images

docker push  hub.test.com:5000/hello-world:1.0

docker rmi hub.test.com:5000/hello-world:1.0

docker images

docker pull  hub.test.com:5000/hello-world:1.0

docker images

查看仓库镜像

curl hub.test.com:5000/v2/_catalog

registry开启删除

#查看默认配置
docker exec -it  registry sh -c 'cat /etc/docker/registry/config.yml'
#开启删除(添加  delete: enabled: true)
docker exec -it  registry sh -c "sed -i '/storage:/a\  delete:' /etc/docker/registry/config.yml"
docker exec -it  registry sh -c "sed -i '/delete:/a\    enabled: true' /etc/docker/registry/config.yml"
#重启
docker restart registry

查询、删除镜像

#查询镜像
curl  <仓库地址>/v2/_catalog

#查询镜像tag(版本)
curl  <仓库地址>/v2/<镜像名>/tags/list

#删除镜像API
curl -I -X DELETE "<仓库地址>/v2/<镜像名>/manifests/<镜像digest_hash>"

#获取镜像digest_hash
curl  <仓库地址>/v2/<镜像名>/manifests/<tag> \
    --header "Accept: application/vnd.docker.distribution.manifest.v2+json"

博文参考

https://www.jb51.net/article/187864.htm

安装docker registry - MartinEDM

到此这篇关于docker registry 私有仓库的文章就介绍到这了,更多相关docker registry 私有仓库内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • docker 查询或获取私有仓库(registry)中的镜像的方法

    docker 查询或获取私有仓库(registry)中的镜像,使用 docker search 192.168.1.8:5000 命令经测试不好使. 解决: 1.获取仓库类的镜像: [root@shanghai docker]# curl -XGEThttp://192.168.1.8:5000/v2/_catalog {"repositories":["nginx"]} 2.获取某个镜像的标签列表: [root@shanghai docker]# curl -XG

  • Docker搭建私有仓库(registry与Harbor)的实现

    随着docker使用的镜像越来越多,就需要有一个保存镜像的地方,这就是仓库.目前常用的两种仓库:公共仓库和私有仓库.最方便的就是使用公共仓库上传和下载,下载公共仓库的镜像是不需要注册的,但是上传时,是需要注册的. 私有仓库最常用的就是registry.Harbor两种,那接下来详细介绍如何创建私有仓库. 一.搭建registry私有仓库 1)案例描述 两台docker服务器,dockerA创建registry私有仓库,dockerB用于测试! 2)案例实例 (1)DockerA服务器的操作 [r

  • Docker私有仓库Registry部署的实现

    随着docker使用的镜像越来越多,就需要有一个保存镜像的地方,这就是仓库.目前常用的两种仓库:公共仓库和私有仓库.最方便的就是使用公共仓库上传和下载,下载公共仓库的镜像是不需要注册的,但是上传时,是需要注册的. 私有仓库最常用的就是Registry.Harbor两种,那接下来详细介绍如何搭建registry私有仓库,Harbor将在下一篇博文部署. 一.部署Registry私有仓库 案例描述 两台CentOS7.4,一台为Docker私有仓库:另一台为Docker客户端,测试使用: 两台服务器

  • Docker 搭建私有仓库(registry、harbor)

    为什么要弄私有仓库,大多是为了速度,我们再私有仓库中的push和pull的速度是特别快的. 利用registry快速搭建 https://hub.docker.com/_/registry/ Run a local registry: Quick Version $ docker run -d -p 5000:5000 --restart always --name registry registry:2 Now, use it from within Docker: $ docker pull

  • docker registry 私有仓库的搭建过程

    目录 摘要 一.环境准备 二.配置registry私有仓库 三.上传与下载镜像 四.配置registry加载身份验证 五. docker registry 私有仓库查询.删除 博文参考 摘要 随着docker使用的镜像越来越多,就需要有一个保存镜像的地方,这就是仓库.目前常用的两种仓库:公共仓库和私有仓库.最方便的就是使用公共仓库上传和下载,下载公共仓库的镜像是不需要注册的,但是上传时,是需要注册的.私有仓库最常用的就是Registry.Harbor两种,那接下来详细介绍如何搭建registry

  • docker私有仓库harbor搭建过程

    1.准备 1.1 harbor下载 harbor下载地址:链接添加链接描述 然后我们可以选择自己需要的版本,我这边选择的是v1.8.3 也可以去 wget https://storage.googleapis.com/harbor-releases/release-1.8.0/harbor-offline-installer-v1.8.3.tgz 1.2 docker安装 docker 安装以及yum源的安装可以参考<docker入门教程(二)>文章. 2.搭建 2.1 解压harbor ta

  • Centos 7中Docker私有仓库的搭建方法

    系统配置: CentOS 7 内核 3.10.0-229.20.1.el7.x86_64 , Docker version 1.8.2 运行 docker registry 执行下列命令: 复制代码 代码如下: docker run /     -d /     --name private_registry  --restart=always /     -e SETTINGS_FLAVOUR=dev /     -e STORAGE_PATH=/registry-storage /    

  • Docker registry私有镜像仓库服务部署案例演示

    目录 简介 registry 案例演示 环境准备 服务部署 简介 docker-registry 是官方提供的工具,可以用于构建私有的镜像仓库,仓库默认会被创建在/var/lib/registry目录下(容器中的目录) registry 案例演示 环境准备 主机名 服务 IP docker-client 客户端(用于上传镜像) 192.168.117.130 docker-server 服务端(用于存储镜像) 192.168.117.131 服务部署 docker-server 运行 regis

  • Docker Registry 私有仓库搭建详细步骤

    Docker  Registry 私有仓库搭建 官方已经提供了很多版本的 Linux 镜像,直接从官方仓库(Public Repositories)下载就可以了.如果考虑到安全性和速度,我们可能会想在自己局域网里架设一个私有仓库(Private Repositories)来放我们自己的镜像,Docker-Registry 正是我们需要的工具. 本次搭建 docker-registry server (dev) (v0.9.0) 添加docker用户和目录 为了安全起见,我们可以添加一个用户doc

  • Docker  Registry 私有仓库搭建详细步骤

    Docker  Registry 私有仓库搭建 官方已经提供了很多版本的 Linux 镜像,直接从官方仓库(Public Repositories)下载就可以了.如果考虑到安全性和速度,我们可能会想在自己局域网里架设一个私有仓库(Private Repositories)来放我们自己的镜像,Docker-Registry 正是我们需要的工具. 本次搭建 docker-registry server (dev) (v0.9.0) 添加docker用户和目录 为了安全起见,我们可以添加一个用户doc

  • docker建立私有仓库的过程

    目录 一.registry和harbor 建立私有仓库 在 Docker 中,当我们执行 docker pull xxx 的时候 ,它实际上是从 registry.hub.docker.com 这个地址去查找,这就是Docker公司为我们提供的公共仓库.在工作中,我们不可能把企业项目push到公有仓库进行管理.所以为了更好的管理镜像,Docker不仅提供了一个中央仓库,同时也允许我们搭建本地私有仓库.这一篇介绍docker私有仓库的建立. 一.registry和harbor registry只是

  • Docker私有仓库的搭建和界面化管理详解

    一.关于Registry 官方的Docker hub是一个用于管理公共镜像的好地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去. 但是有时候我们的使用场景需要我们拥有一个私有的镜像仓库用于管理我们自己的镜像.这个可以通过开源软件Registry来达成目的. Registry在github上有两份代码:老代码库和新代码库.老代码是采用python编写的,存在pull和push的性能问题,出到0.9.1版本之后就标志为deprecated,不再继续开发. 从2.0版本开始就到在

  • docker私有仓库的搭建和使用详解

    1.下载仓库镜像 docker pull registry 2.创建私有仓库容器-d表示后台启动 docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry registry 3.防火墙解除5000端口限制 firewall-cmd --zone=public --add-port=5000/tcp --permanent 4.验证私有仓库是否启动成功 http://192.3.8.12:5000/v2 5.打包镜像 do

  • 使用远程Docker进行集成测试的环境搭建过程

    需求背景 团队有集成测试的需求,集成测试需要依赖一些中间件,比如mysql,rabbitmq.每个研发人员有对自己开发的那部分代码进行测试编写和运行检测的需求. 为了不互相影响,可以选择在研发本地搭建自己的依赖环境,我们希望这些环境搭建要容易.快速,且方便清理. 使用docker进行环境搭建 而docker,则能很好实现上述诉求. 但仅仅这样还不够,我们还面临着以下一些问题 本地环境搭建的繁琐.每个研发,都要在本地安装docker环境,这会导致在使用上的一些门槛和不便,以我司为例,由于有严格的网

随机推荐