前言
docker官网的registry 可以运行一个开放的docker私有仓库,那个镜像没有做权限控制使用的时候遇到权限问题可以通过配置文件中添加DOCKER_OPTS="$DOCKER_OPTS --insecure-registry=192.168.1.112:5000"
其中192.168.1.112:5000是我仓库用运行的ip和端口。
这样就可以简单的使用docker仓库来管理镜像了,但是这个样子任何人都可以push镜像上来,当然这个是不够安全的,我们的镜像可能被别人的镜像覆盖了,这样我们的工作就白干了,据我所知目前国内有个docker仓库也是这中简单的仓库任何人都可以push 这个仓库的地址是http://dl.dockerpool.com:5000/v1/search 大家有兴趣可以去看看但是不要搞破坏啊。
为了解决权限认证的问题我在DockerHub上找到了marvambass/nginx-registry-proxy镜像通过这个镜像我们可以做仓库的用户认证代理,下面详细介绍下具体做法:
权限认证代理设置步骤
1、获得marvambass/nginx-registry-proxy镜像
pull marvambass/nginx-registry-proxy
2、签发根证书:
2.1、创建根证书存放目录
mkdir /home/$USER/ssl && cd /home/$USER/ssl
2.2、签发根证书
openssl req -x509 -newkey rsa:4086 -keyout key.pem -out cert.pem -days 3650 -nodes
Country Name (2 letter code) [XX]:CH 国家名称
State or Province Name (full name) []:shanxi 省份
Locality Name (eg, city) [Default City]:xian 市区
Organization Name (eg, company) [Default Company Ltd]:hw 公司
Organizational Unit Name (eg, section) []:da 组织
Common Name (eg, your name or your server's hostname) []:test.com 签发域名
Email Address []: 邮件地址可选
3、创建密码文件
3.1、如果htpasswd命令不存在则安装httpd-tools
yum -y install httpd-tools
3.2、创建密码文件添加用户
htpasswd -c docker-registry.htpasswd username
添加用户时 htpasswd 不要加 -c选项
htpasswd docker-registry.htpasswd admin
根证书和密码文件创建完成后ssl目录中应该有以下文件:
/home/$USER/ssl/
cert.pem docker-registry.htpasswd key.pem
4、运行代理容器
docker run -d -p 443:443 \
-v /home/$USER/ssl/:/etc/nginx/external \
--link registry:registry --name nginx-registry-proxy \
marvambass/nginx-registry-proxy
这个的前提是你已经运行了一个regisrty的的仓库,这样用户认证的代理就设置完成了
使用方法
测试时你可以用本机也可以用其他机器或者虚拟机
首先docker私有仓库管理员要将用户通过htpasswd 添加到 docker-registry.htpasswd中
1、安装根证书
Docker私有仓库管理员要将根证书cert.pem 拷贝给用户或者放在某个可以下载的地方让用户下载使用
用户将 cert.pem中的内容追加到
/etc/ssl/certs/ca-bundle.crt
2、重启docker 服务
sudo service docker restart
3、登录仓库
docker login https://test.com:443
我用admin登录成功则输入如下
Username: admin
Password:
Email:
Login Succeeded
4、下载镜像
docker pull test.com/hello-world
5、上传镜像
docker tag hello-world test.com/admin/hello-world
docker pull test.com/admin/hello-world
相关推荐
从基础概念出发,详解如何搭建并维护一个安全高效的Maven、npm、Docker等多类型组件的私有仓库,包括仓库创建、权限管理、代理远程仓库以及与CI/CD流程的集成等内容,全方位覆盖Nexus3的核心功能及其实战技巧。...
配置时,需要设置认证机制(通常使用Keystone)、消息队列(如RabbitMQ)以及选择合适的网络插件(如Neutron ML2 Plugin)。此外,还要配置Linux桥接代理,将物理网络与虚拟网络连接起来,以实现虚拟机的网络通信。...
6. **使用和应用**:开发团队可以通过配置Maven、Gradle等构建工具指向Nexus,自动从私有仓库下载和上传组件。这样可以避免每次构建时连接到互联网,提高开发效率。 7. **源码组件管理**:Nexus不仅管理已编译的二...
默认情况下,Maven使用Maven Central仓库,但通过配置Nexus,用户可以创建自己的代理仓库,以便更好地管理和控制依赖。 在压缩包的文件名称列表中,“nexus-3.14-64”可能是指安装程序或者解压后的文件夹名,包含了...
Nexus作为一个中央仓库,可以帮助开发者管理项目依赖,提供高效的缓存和代理功能,同时也可以作为内部私有仓库,存放企业内部的库和组件,确保代码的安全性和可控性。 在标签“nexus 2.4”中,我们可以推测这个版本...
** 可以配置Pipeline以使用远程Docker服务器或私有Docker仓库。 #### 扩展性 - **扩展共享库。** 可以创建和使用全局共享库、文件夹级别的共享库和自动共享库,从而扩展Jenkins Pipeline的功能。 - **动态加载库...
与公开的中央仓库相比,私有仓库能提供更快的下载速度,同时可以保护公司的内部依赖不被外部访问。此外,它还便于管理版本,确保团队成员使用的是经过验证和测试的软件构件。 在标签中,“nexus”是关键词,它直接...
用户可以通过Nexus设置私有仓库,以便快速访问和控制内部依赖。 2. **代理仓库**:Nexus可以作为公共仓库的代理,这样即使在公司内网环境下,也能高效地获取外部依赖,减少了对互联网的直接访问。 3. **安全控制**...
私有仓库有助于提高构建速度,确保依赖库的安全性,同时避免了对外部公共 Maven 仓库的过度依赖。 标签 "Maven Windows" 明确了 Nexus 在此场景中的角色是与 Maven 集成,并且这个版本是为 Windows 平台设计的。...
3. **宿主仓库**:用户可以创建自己的私有仓库,用于存储内部组件和工件,确保数据安全。 4. **安全性和权限管理**:Nexus提供基于角色的访问控制(RBAC),可以设定不同用户的访问权限,确保敏感组件不被非法访问。...
### 构建私有Maven仓库使用Nexus的详尽指南 ...以上步骤详细介绍了如何使用Nexus和Maven构建私有仓库的过程,以及如何添加第三方构件和优化远程仓库配置。这些操作可以帮助团队更好地管理依赖关系,提高开发效率。
### Nexus 3 仓库管理知识点概述 #### 一、概念篇 **1.1 引言** Nexus 3 是一款强大的开源仓库管理系统,由 Sonatype ...这部分涵盖了如何创建、配置和管理 Nexus 3 中的仓库,包括设置访问策略、定义代理行为等。
Nexus Repository Manager 3.x版本是Nexus专业团队为开发者提供的一个功能丰富的仓库管理平台,它支持私有仓库管理以及代理缓存公共库。该平台对API开发和理解十分有帮助,可以有效协助开发者管理和发布各种类型的...
3. 配置Nexus,包括设置端口、用户认证、存储位置等。 4. 创建并配置所需的存储库,例如Maven hosted、proxy和group仓库,以满足项目需求。 5. 配置Maven的settings.xml文件,指向Nexus作为镜像源或代理远程仓库。 6...
1. **创建仓库**:在Web界面中,可以创建不同类型的仓库,如Maven代理、Maven托管、NPM、Docker等。 2. **配置构建工具**:在项目中,更新构建工具的配置文件(如Maven的`settings.xml`),指向Nexus的代理仓库地址...
- 用户需要设置认证信息,创建用户角色和权限,以控制对仓库的访问。 - 对于Maven项目,需要配置settings.xml文件,指向Nexus的Maven仓库地址。 - 可以通过Nexus的REST API进行自动化操作,如发布构件、清理...
- 安装必要的软件包,如 Docker 私有仓库 Harbor 和证书签发工具 cfssl。 - 配置内网 DNS 系统,例如在 hdss7-11 上安装并配置 bind9。 **3. 安装部署主控节点服务** 主控节点主要包含 etcd、apiserver、...
它可以是公司内部的私有仓库,用来托管内部库,避免频繁从公共Maven中央仓库下载,提高构建速度。 2. **Nexus Repository Manager**:由Sonatype开发的Nexus是业界广泛使用的Maven私服,支持Maven、Gradle、npm、...