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 并配置认证登录的更多相关文章

  1. 局域网内部署 Docker Registry

    在局域网内部署 Docker Registry 可以极大的提升平时 pull.push 镜像的速度,从而缩短自动化操作的过程.同时也可以缓解带宽不足的问题,真是一举多得.本文将从创建单机的 Docke ...

  2. Nginx配置认证登录

    本配置实现Nginx认证登录以免重要信息暴露在公网 日志收集ELK展示工具kibana免费版不支持密码验证,需要设置Nginx反向代理然后关闭kibana默认端口5601使用Nginx端口登录进行用户 ...

  3. ubuntu docker方式部署docker registry v2

    生成自己签名的证书 生成签名的过程需要根据提示输入一些参数,需要注意的时Common Name的时候需要输入一个自己需要的域名,如果时内部域名记得访问的时候需要修改hosts. mkdir /data ...

  4. 【云计算】docker registry v2简介

    ubuntu docker方式部署docker registry v2 2016-03-03 17:36 by JackieHan, 4 阅读, 0 评论, 收藏,  编辑 生成自己签名的证书 生成签 ...

  5. Docker-搭建Docker Registry

    私有Docker Registry的部署和配置 从Docker Hub上可以获取官方的Registry的镜像,Registry 默认的对外服务端口是 5000,如果我们宿主机上运行的 Registry ...

  6. 配置带用户权限的docker registry v2

    v1版本的docker registry用nginx配置,v2版本的用nginx有些问题,客户端总是会请求到v1/下面去, 以下从 http://blog.csdn.net/felix_yujing/ ...

  7. 附001.Docker阿里云Registry加速器配置

    一 安装配置docker 1.1 安装docker 见<002.docker版本及安装>. 1.2 配置国内阿里云加速器 见<002.docker版本及安装>. 二 配置阿里云 ...

  8. 部署私有Docker Registry

    安装部署一个私有的Docker Registry是引入.学习和使用Docker这门技术的必经之路之一.尤其是当Docker被所在组织接受,更多人.项目和产品开始接触和使用Docker时,存储和分发自制 ...

  9. docker开启2376端口CA认证及IDEA中一键部署docker项目

    嘿,大家好,今天更新的内容是docker开启2376端口CA认证及IDEA中一键部署docker项目... 先看效果 我们可以通过idea一键部署docker项目,还以通过idea的控制台实时查看容器 ...

随机推荐

  1. javascript错误类型

    ECMA-262 定义了下列 7 种错误类型,简单说明如下: Error:普通异常.通常与 throw 语句和 try/catch 语句一起使用. 利用属性 name 可以声明或了 解异常的类型,利用 ...

  2. Echart可视化学习(六)

    文档的源代码地址,需要的下载就可以了(访问密码:7567) https://url56.ctfile.com/f/34653256-527823386-04154f 柱状图定制 官网找到类似实例, 适 ...

  3. docker安装easymock

    一.准备 参考docker安装mongodb与redis文章 二.拉取 docker pull docker.io/easymock/easymock 三.启动 1.创建配置目录 mkdir -f / ...

  4. IK 分词器

    目录 IK 分词器-介绍 IK 分词器-安装 环境准备:Maven 安装 IK 分词器 IK 分词器-使用 IK 分词器-介绍 现有问题:ES 默认对中文分词并不友好,实际上是把中文进行了每个字的分词 ...

  5. 使用.NET 6开发TodoList应用(30)——实现Docker打包和部署

    系列导航及源代码 使用.NET 6开发TodoList应用文章索引 需求 .NET 6 Web API应用使用最多的场景是作为后端微服务应用,在实际的项目中,我们一般都是通过将应用程序打包成docke ...

  6. Web开发之HTTP协议

    HTTP响应消息 一个HTTP响应代表服务器向客户端回送的数据. 一个完整的HTTP响应包括如下内容: 一个状态行.若干消息头.以及响应正文,其中的一些消息头和正文都是可选的,消息头和正文内容之间要用 ...

  7. 如何使用Github搭建自己的博客

    1.前期准备 sudo apt-get install npm sudo npm install hexo -g 首先使用如下命令创建项目,name是你要创建的博客的名字: hexo init {na ...

  8. golang中使用zap日志库

    1. 快速使用 package main import ( "go.uber.org/zap" "time" ) func main() { // 1. sug ...

  9. 边带权并查集 学习笔记 & 洛谷P1196 [NOI2002] 银河英雄传说 题解

    花了2h总算把边带权并查集整明白了qaq 1.边带权并查集的用途 众所周知,并查集擅长维护与可传递关系有关的信息.然而我们有时会发现并查集所维护的信息不够用,这时"边带权并查集"就 ...

  10. Linux 总结

    查看端口 lsof -i:8000 查看进程 ps -ef  |  grep  python netstat -tunlp |grep 端口号 拷贝 cp 文件 生成文件名 做软连接找到目标文件目录 ...