部署 Docker Registry 并配置认证登录

简介: 部署 Docker Registry 并配置认证登录
Docker Registry 官网

Docker Registry 需要 Docker 版本高于等于 1.6.0

Registry是一个无状态、高度可扩展的服务器侧应用程序,用于存储和允许您分发Docker镜像

内网环境下,可以使用 Docker Registry 来解决k8s集群的镜像拉取问题,当然,公网情况下, Docker Registry 私密性更高,比共有仓库更适合

如果需要 Docker Registry 开启认证功能,可以直接看配置 Docker Registry 认证

搭建 Docker Registry

创建本地映射目录

这个目录可以自定义,根据自身实际磁盘空间情况进行创建,将容器内的文件映射到本地,以此来达到持久化的效果
# mkdir /var/lib/registry

启动 Docker Registry

docker命令中,冒号前面的为本地路径或端口,冒号后面的为容器内部的路径或端口

-p:将本地5000端口映射给容器内的5000端口(Docker Registry默认端口),本地端口可以自定义,只要是空闲的端口即可

--restart:容器的重启策略

--name:启动的容器名称

-v:将本地目录映射到容器内的/var/lib/registry目录

-d:将容器放到后台运行

registry:镜像名,不加tag,默认拉取latest,如果本地不存在,启动容器前,会自动拉取

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

配置 Docker Registry

# vim /etc/docker/daemon.json
注意json语法格式

如果重启docker失败,日志有如下输出,表示daemon.json文件的格式有错误,注意最后是否需要加上逗号

unable to configure the Docker daemon with file /etc/docker/daemon.json: invalid character '"' after object key:value pair

"insecure-registries": ["ip:端口"]
重启docker
# systemctl daemon-reload
# systemctl restart docker

配置 Docker Registry 认证

创建 Docker Registry 认证文件目录
# mkdir /var/lib/registry_auth
创建 Docker Registry 认证文件

使用 Apache 的 htpasswd 来创建加密文件

# yum install -y httpd-tools
# htpasswd -Bbn admin admin > /var/lib/registry_auth/htpasswd

启动带认证的 Docker Registry

  • REGISTRY_AUTH=htpasswd # 以 htpasswd 的方式认证
  • REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm # 注册认证
  • REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd # 认证的用户密码
# docker run -p 5000:5000 \
--restart=always \
--name registry \
-v /var/lib/registry:/var/lib/registry \
-v /var/lib/registry_auth/:/auth/ \
-e "REGISTRY_AUTH=htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
-e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" \
-d registry

配置 Docker Registry

# vim /etc/docker/daemon.json
注意json语法格式

如果重启docker失败,日志有如下输出,表示daemon.json文件的格式有错误,注意最后是否需要加上逗号

unable to configure the Docker daemon with file /etc/docker/daemon.json: invalid character '"' after object key:value pair

"insecure-registries": ["ip:端口"]
重启docker
# systemctl daemon-reload
# systemctl restart docker

登录 Docker Registry

  • 登录可以是免交互式,也可以是交互式的

    • docker login -u 用户名 -p 密码 ip:端口 # 一般不建议使用明文密码
    • docker login -u 用户名 -p ip:端口 # 不输入密码,回车后,使用交互式输入密码(输入的密码不会显示)
    • docker login ip:端口 # 不输入密码和用户名,回车后,使用交互式输入用户名和密码(输入的密码不会显示)
# docker login ip:端口
Username: admin
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
退出登录
# docker logout ip:端口

测试 Docker Registry

给镜像打上 Docker Registry 的仓库标签
# docker tag centos:7 ip:端口/centos:7
将新打标签的镜像上传镜像到仓库
# docker push ip:端口/centos:7
查看镜像,可以看到我们上传的 centos 7 这个镜像了
# curl ip:端口/v2/_catalog -u admin
Enter host password for user 'admin':
{"repositories":["centos"]}
查看镜像包含的tag

需要先使用_catalog查看镜像的名称

# curl ip:端口/v2/centos/tags/list -u admin
Enter host password for user 'admin':
{"name":"centos","tags":["8","7","7.1"]}

需要先使用_catalog查看镜像的名称

# curl ip:端口/v2/centos/tags/list -u admin
Enter host password for user 'admin':
{"name":"centos","tags":["8","7","7.1"]}
目录
相关文章
|
Kubernetes 关系型数据库 文件存储
手把手教你完成极空间 NAS Docker 镜像加速配置
本教程详细介绍了如何在极空间NAS上配置轩辕镜像加速器,以提升Docker镜像的下载速度与稳定性。内容涵盖账号注册、网络确认、加速器设置及验证方法,并提供常见问题解决方案,帮助用户高效完成容器化应用部署。
4715 1
|
文件存储 数据安全/隐私保护 开发者
群晖NAS Docker镜像源加速配置教程
本教程介绍了群晖NAS用户如何通过配置轩辕镜像加速服务提升Docker镜像拉取速度。内容包括配置前准备、详细设置步骤及日常使用说明,帮助用户快速完成配置并享受高效稳定的镜像下载体验。
6705 60
|
Docker 容器 文件存储
飞牛fnOS Docker镜像加速配置全攻略
本文介绍了如何在飞牛fnOS中配置Docker镜像加速服务,通过设置轩辕镜像仓库加速器,提升镜像拉取速度与稳定性。内容涵盖配置前准备、加速源设置、首选加速源调整及使用指南,帮助用户高效完成镜像操作。
8194 56
|
Java 分布式数据库 Docker
使用Docker配置并连接HBase的Java API
本流程概要的解释了如何在Docker上配置并启动HBase服务,并通过Java API进行连接和操作表,不涉及具体的业务逻辑处理和数据模型设计,这些因应用而异需由开发者根据实际需求进行实现。
552 13
|
存储 NoSQL MongoDB
Docker中安装MongoDB并配置数据、日志、配置文件持久化。
现在,你有了一个运行在Docker中的MongoDB,它拥有自己的小空间,对高楼大厦的崩塌视而不见(会话丢失和数据不持久化的问题)。这个MongoDB的数据、日志、配置文件都会妥妥地保存在你为它精心准备的地方,天旋地转,它也不会失去一丁点儿宝贵的记忆(即使在容器重启后)。
1817 4
|
Prometheus 监控 Cloud Native
Prometheus配置docker采集器
本文介绍了如何使用 Prometheus 监控 Docker 容器,涵盖环境准备、配置文件编写及服务启动等步骤。首先确保安装 Docker 和 Docker Compose,接着通过 `docker-compose.yml` 配置 Prometheus 和示例应用。创建 `prometheus.yml` 指定数据采集目标,最后用 `docker-compose up -d` 启动服务。文章还展示了甘特图和类图,帮助理解服务状态与关系,助力提升系统可靠性和可维护性。
701 11
|
数据安全/隐私保护 Docker 容器
docker pull 相关配置
通过本文的介绍,您已经了解了如何通过镜像源配置、登录私有仓库、设置网络代理以及其他优化策略来提升 `docker pull`命令的效率和可靠性。这些配置不仅能够显著加快镜像下载速度,还能确保在不同网络环境下的稳定性。通过合理使用这些配置,您可以更好地管理和优化Docker环境中的镜像拉取操作。
2507 18
|
弹性计算 运维 Ubuntu
在阿里云ECS云服务器上安装、配置及高效使用Docker与Docker Compose
本文介绍了在阿里云ECS上使用Ubuntu系统安装和配置Docker及Docker Compose的详细步骤。通过这些工具,可以快速部署、弹性扩展和高效管理容器化应用,满足开发和运维需求。内容涵盖Docker的安装、镜像源配置、创建Web程序镜像以及使用Docker Compose部署WordPress等实际操作,并分享了使用体验,展示了阿里云实例的高性能和稳定性。
2882 4

热门文章

最新文章