手把手docker registry配置登录名/密码

这篇具有很好参考价值的文章主要介绍了手把手docker registry配置登录名/密码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

我们的Docker私有仓库Registry服务只有加了认证机制之后我们的Registry服务才会更加的安全可靠。赶快跟随以下步骤来增加认证机制吧。

创建密码

  1. 创建docker registry工作目录

mkdir -p /data/docker.registry

  1. 创建将保存凭据的文件夹

mkdir -p /data/docker.registry/etc/registry/auth

  1. 安装htpasswd工具。

yum -y install httpd-tools

创建管理员admin,存入/data/docker.registry/etc/registry/auth/passwd里面,此passwd文件将包含登录凭据和加密的passwd

htpasswd -Bbn admin 123456 > /data/docker.registry/etc/registry/auth/passwd

  1. 验证密码

cat /data/docker.registry/etc/registry/auth/passwd
admin:$2y$05$3R0Y9nlTM.DQEAgSrGCdp.zFMkeRr8ILeK6kW/o0kvlagZLlpUmDG

启动Registry

  1. 配置Registry删除权限
    默认安装的Registry不支持删除
# vi /data/docker.registry/etc/registry/config.yml 
version: 0.1
log:
  fields:
    service: registry
storage:
  cache:
    blobdescriptor: inmemory
  filesystem:
    rootdirectory: /var/lib/registry
  delete: #配置删除权限,默认安装的Registry不支持删除
    enabled: true
http:
  addr: :5000
  headers:
    X-Content-Type-Options: [nosniff]
health:
  storagedriver:
    enabled: true
    interval: 10s
    threshold: 3
  1. 密码创建完成,将凭据添加到注册表中。在这里,将auth目录和config.xml配置文件挂载到容器中:
docker run -d -p 5000:5000 \
--restart=always \
--name registry_private \
-v /data/docker.registry/etc/registry/auth:/etc/registry/auth \
-v /data/docker.registry/etc/registry/config.yml:/etc/docker/registry/config.yml \
-v /data/docker.registry/var/lib/registry:/var/lib/registry \
-e "REGISTRY_AUTH=htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
-e "REGISTRY_AUTH_HTPASSWD_PATH=/etc/registry/auth/passwd" \
registry:latest

成功后会在/root/.docker/config.json 保存5000端口的密码,启动registry-web会用到,如下图:
手把手docker registry配置登录名/密码
3. 测试

[root@test data]# docker tag registry:latest 127.0.0.1:5000/registry:latest
[root@test data]# docker push 127.0.0.1:5000/registry
The push refers to repository [127.0.0.1:5000/registry]
fb6b1a93008f: Preparing
6d2d8cb41f01: Preparing
4f5aa08c5eaa: Preparing
8ebb9d6ed165: Preparing
0fcbbeeeb0d7: Preparing
no basic auth credentials

  1. 认证

[root@test data]# docker login 127.0.0.1:5000 # admin/123456
Username (): admin
Password:
Login Succeeded

  1. 重试推送

[root@test data]# docker push 127.0.0.1:5000/registry
The push refers to repository [127.0.0.1:5000/registry]
fb6b1a93008f: Pushed
6d2d8cb41f01: Pushed
4f5aa08c5eaa: Pushed
8ebb9d6ed165: Pushed
0fcbbeeeb0d7: Pushed
latest: digest: sha256:a0dd61073ad21122e5f1517682800272ef29df52041aaea7ee29e92a5d22aa28 size: 1363

  1. 凭据保存在 .docker/config.json中:

[root@test data]# cat ~/.docker/config.json
{
“auths”: {
“127.0.0.1:5000”: {
“auth”: “YWRtaW46ZkZHHGGluVDQ1SA==”
}
}
}

注意: 在使用凭据时建议使用https.

  1. 使用

登录
docker login 172.x.x.x:5000
输入用户名密码 admin/123456

  1. 查看镜像

浏览器访问:http:// 172.x.x.x:5000/v2/_catalog
输入用户名/密码admin/123456

  1. 查询镜像标签列表

curl -u admin:123456 ‘http:// 127.0.0.1:5000/v2/qingzhu-backend-gray/tags/list’

安装 registry-web

平时对仓库镜像的管理,如果仅通过接口请求来操作仓库镜像,还是挺麻烦的。
hyper/docker-registry-webUI是一款轻量级的管理界面

# 拉取镜像
docker pull hyper/docker-registry-web
# 启动容器 --link registry_private 是我以前安装的 Registry 
docker rm -f registry-web
docker run -d \
-p 8000:8080 \
--name registry-web\
--restart=always \
--link registry_private \
-e registry_url=http://registry_private:5000/v2 \
-e registry_name=registry_private \
-e REGISTRY_TRUST_ANY_SSL=false   \
-e REGISTRY_BASIC_AUTH="YWRtaW46ZkZ0WWluVDQ1SA==" \
-e registry_auth_enabled=false \
-e registry_readonly=false \
hyper/docker-registry-web:latest

docker logs -f registry-web

浏览器访问:

http://172.x.x.x:8000

启用registry-web登录认证

令牌身份验证需要PEM格式的RSA私钥以及与该密钥匹配的证书

  1. 生成私钥和证书
mkdir conf
openssl req -new -newkey rsa:4096 -days 365 -subj "/CN=localhost" \
        -nodes -x509 -keyout conf/auth.key -out conf/auth.cert
  1. 创建registry配置 conf/registry-srv.yml
version: 0.1    

storage:
  filesystem:
    rootdirectory: /var/lib/registry
    
http:
  addr: 0.0.0.0:5000   
    
auth:
  token:
    # external url to docker-web authentication endpoint
    realm: http://localhost:8080/api/auth
    # should be same as registry.name of registry-web
    service: localhost:5000
    # should be same as registry.auth.issuer of registry-web
    issuer: 'my issuer'
    # path to auth certificate
    rootcertbundle: /etc/docker/registry/auth.cert
  1. Start docker registry
docker run -v $(pwd)/conf/registry-srv.yml:/etc/docker/registry/config.yml:ro \
            -v $(pwd)/conf/auth.cert:/etc/docker/registry/auth.cert:ro -p 5000:5000  --name registry-srv -d registry:2    
                 
  1. Create configuration file conf/registry-web.yml
registry:
  # Docker registry url
  url: http://registry-srv:5000/v2
  # Docker registry fqdn
  name: localhost:5000
  # To allow image delete, should be false
  readonly: false
  auth:
    # Enable authentication
    enabled: true
    # Token issuer
    # should equals to auth.token.issuer of docker registry
    issuer: 'my issuer'
    # Private key for token signing
    # certificate used on auth.token.rootcertbundle should signed by this key
    key: /conf/auth.key
  1. Start registry-web
docker run -v $(pwd)/conf/registry-web.yml:/conf/config.yml:ro \
           -v $(pwd)/conf/auth.key:/conf/auth.key -v $(pwd)/db:/data \
           -it -p 8080:8080 --link registry-srv --name registry-web hyper/docker-registry-web

Web UI will be available on http://localhost:8080 with default admin user/password admin/admin.

参考:docker-registry-web文章来源地址https://www.toymoban.com/news/detail-418720.html

到了这里,关于手把手docker registry配置登录名/密码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【谨慎学习】手把手教你破解网站管理后台帐号密码

    对于网站运行的个人站长而言,最担心的是应如何有效且安全的去管理自己的网站,否则自己辛辛苦苦经营的网站就会被不请自来的不速之客给攻破,轻则站点数据被窃取,重则整个网站都被攻陷,导致无法恢复。 本文主要从管理后台这个方面来讲解其黑客攻击过程,并通过

    2024年02月02日
    浏览(47)
  • 手把手教你Shiro整合JWT实现登录认证

    SpringBoot Mybatis-plus Shiro JWT Redis Shiro: Shiro 是一个基于 Java 的开源的安全框架。 在 Shiro 的核心架构里面,Subject 是访问系统的用户。SecurityManager 是安全管理器,负责用户的认证和授权,相当于 Shiro 的老大哥。 Realm 相当于数据源,用户的认证和授权都在 Realm 的方法中进行。

    2023年04月17日
    浏览(35)
  • PHP实践:手把手微信公众号网页授权登录功能实现

    🏆作者简介,黑夜开发者,全栈领域新星创作者✌,CSDN博客专家,阿里云社区专家博主,2023年6月CSDN上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责人。 🏆本文已收录于PHP专栏:PHP进阶实战教程。 🏆另有专栏PHP入门基础教程,希望各位大佬

    2024年02月12日
    浏览(39)
  • 手把手教程用Java实现微信公众号扫码登录功能

    微信现今是我们必不可少的社交工具了,围绕微信这个生态实际上有很多东西可以做,我们经常会看到一些网站通过微信扫码进如公众号登录。一方面方便了用户登录,另外一方面也可以给公众号带来一定的流量,今天就通过 Java SpringBoot 项目来用微信公众号参数二维码实现

    2024年02月06日
    浏览(50)
  • [Kotlin]手把手教你写一个安卓APP(第一章注册登录)

    开发软件:Android Studio 1.创建项目默认选择Empty Activity                                                                      点击Next  2.生成项目设置包名选择开发语言(这里我用的是kotlin)  在生成项目后我们要做的就是添加需要的配置打开我们的app目录下的 buil

    2023年04月23日
    浏览(68)
  • 100 行代码实现用户登录注册与 RESTful 接口 - 手把手教程附 Python 源码

    在开发大多数应用时,用户系统都是必不可少的部分,而我们总是需要开发围绕用户的登录,注册,获取,更新等接口。在这篇文章将带你用一百多行代码简洁地实现一套这样的用户鉴权与 RESTful 接口,并使用 Session 来处理用户的登录登出 我们将使用 UtilMeta 框架 完成接口开

    2024年02月19日
    浏览(35)
  • 手把手教你如何使用Docker

    我们在公司开发中,会有开发环境,测试环境,上线环境, 比如我们开发人员开发好了一个项目,在开发环境中运行正常,但测试人员拉到测试环境就跑不起来【jdk版本等】,或者上线的时候运行不起来,这时候就要为每个机器配置一个环境,那运维人员不得累死?【哈哈,

    2024年02月10日
    浏览(50)
  • [手把手系列之]Docker 部署 vue 项目

    Docker 作为轻量级虚拟化技术,拥有持续集成、版本控制、可移植性、隔离性和安全性等优势。本文使用Docker来部署一个vue的前端应用,并尽可能详尽的介绍了实现思路和具体步骤,以方便有类似需要的同学参考。 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应

    2024年03月24日
    浏览(51)
  • docker部署(使用docker-compose)手把手教程

    docker-compose.yml 文件内容  安装成功后,运行 docker ps 出现如下报错  表示未启动docker,运行下列语句即可 安装完成后,运行 赋予权限即可 在服务器上单独新建文件夹名为ruoyi-admin dockerfile文件如下  执行如下命令 这就构建出本地的镜像了。   依次再构建出ruoyi/ruoyi-xxl-job-adm

    2024年02月01日
    浏览(35)
  • 【Docker】手把手教你搭建好玩的docker项目合集

    这是我在使用docker后,慢慢一个个累计起来的项目,觉得还挺有意思的。 之后我会持续慢慢的更新新的项目,大伙如何有好玩的docker项目,欢迎来找我讨论哇,我每天都会看私信的 docker搭建数据库 使用docker安装数据库是非常省事的,而且想安什么类型的数据就安什么类型的

    2024年02月07日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包