部署 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"]}
部署 Docker Registry 并配置认证登录的更多相关文章
- 局域网内部署 Docker Registry
在局域网内部署 Docker Registry 可以极大的提升平时 pull.push 镜像的速度,从而缩短自动化操作的过程.同时也可以缓解带宽不足的问题,真是一举多得.本文将从创建单机的 Docke ...
- Nginx配置认证登录
本配置实现Nginx认证登录以免重要信息暴露在公网 日志收集ELK展示工具kibana免费版不支持密码验证,需要设置Nginx反向代理然后关闭kibana默认端口5601使用Nginx端口登录进行用户 ...
- ubuntu docker方式部署docker registry v2
生成自己签名的证书 生成签名的过程需要根据提示输入一些参数,需要注意的时Common Name的时候需要输入一个自己需要的域名,如果时内部域名记得访问的时候需要修改hosts. mkdir /data ...
- 【云计算】docker registry v2简介
ubuntu docker方式部署docker registry v2 2016-03-03 17:36 by JackieHan, 4 阅读, 0 评论, 收藏, 编辑 生成自己签名的证书 生成签 ...
- Docker-搭建Docker Registry
私有Docker Registry的部署和配置 从Docker Hub上可以获取官方的Registry的镜像,Registry 默认的对外服务端口是 5000,如果我们宿主机上运行的 Registry ...
- 配置带用户权限的docker registry v2
v1版本的docker registry用nginx配置,v2版本的用nginx有些问题,客户端总是会请求到v1/下面去, 以下从 http://blog.csdn.net/felix_yujing/ ...
- 附001.Docker阿里云Registry加速器配置
一 安装配置docker 1.1 安装docker 见<002.docker版本及安装>. 1.2 配置国内阿里云加速器 见<002.docker版本及安装>. 二 配置阿里云 ...
- 部署私有Docker Registry
安装部署一个私有的Docker Registry是引入.学习和使用Docker这门技术的必经之路之一.尤其是当Docker被所在组织接受,更多人.项目和产品开始接触和使用Docker时,存储和分发自制 ...
- docker开启2376端口CA认证及IDEA中一键部署docker项目
嘿,大家好,今天更新的内容是docker开启2376端口CA认证及IDEA中一键部署docker项目... 先看效果 我们可以通过idea一键部署docker项目,还以通过idea的控制台实时查看容器 ...
随机推荐
- Linux上天之路(四)之Linux界面介绍
Linux界面 linux为使用者提供了图形界面和文本界面,但是很多操作依然需要文本界面的操作才能完成,很多人使用起来比较蹩脚,又因为linux平台的个人应用APP相对较少,使得大家的个人PC安装了l ...
- python驱动SAP完成数据导出(二)
在上一篇 python驱动SAP完成数据导出(一)中,我们提到了数据导出前,SAP布局的重要性,如何识别当前布局模式,以及如何切换到想要的布局.本篇小爬将着重讲讲数据导出的注意事项. 我们可以通过如下 ...
- httprunner3.x全网最详细教程
一.所需环境 wiindows10以上 python3.6以上 httprunner3.1.6(最新版本) pycharm社区版 二.安装httprunner 1.卸载旧版本 卸载之前版本的命令为:p ...
- 阿里云服务器ECS Ubuntu16.04 初次使用配置教程(图形界面安装)
原文链接:? 传送门 前一阵子购买了阿里云的云服务器ECS(学生优惠),折腾了一阵子后对有些东西不太满意,所以就重新初始化了磁盘,刚好要重新安装图形界面,于是就顺手写了这么一篇文章. 第一次登陆服务器 ...
- Mybatis配置解析(核心配置文件)
4.配置解析 4.1.核心配置文件 Mybatis的配置文件包含了会深深影响mybatis行为的设置和属性信息 mybatis-config.xml properties(属性)重点 settings ...
- winform设置所有窗体统一图标
class WindowHookerManager { static WindowHooker hooker = new WindowHooker(); public static void SetA ...
- Qt之QFileDialog
widget.h: #ifndef WIDGET_H #define WIDGET_H #include <QWidget> #include<QString> class W ...
- SQL 中进行递归
很多时候,我们做Tree的时候会用到递归.但是一般都是从数据库中拿到数据然后再程序中进行递归.昨天一个巧合,一位同事给我看了数据库中的递归,乍一看还不太明白. 表结构是这样的 CREATE TABLE ...
- 样式操作案例5-改变box的大小和位置
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- vi/vim 设置.vimrc(/etc/vim | $HOME)
转载请注明来源:https://www.cnblogs.com/hookjc/ "====================================================== ...