通过已有Nginx镜像创建私有仓库

想搭建一个私有的Docker仓库,查看了各种资料,大多是使用Nginx做代理,可是由于对于Nginx不熟悉,各种关于权限认证的问题,折腾了两天也没有搞定,后来无意在网上看到一篇使用已有镜像的方法,终于搞定了,原文参考:http://cloud.51cto.com/art/201412/458680_all.htm

测试环境

192.168.40.71   CoreOS   仓库服务器

192.168.40.83   CoreOS    客户机

仓库服务器配置

执行下面的命令,启动registry镜像,以及Nginx代理镜像
docker run -d --name registry  -v /root/my_registry:/tmp/registry -p 5000:5000 registry
docker run -d --hostname dokk.co --name nginx --link registry:registry -p 443:443 larrycai/nginx-auth-proxy

客户机配置

  1. 将下面的内容添加到/etc/hosts文件中

    192.168.40.71 dokk.co

  2. 下载ca.pem文件到客户机(https://github.com/Eric-aihua/nginx-auth-proxy/blob/master/ca.pem)
  3. 将ca.pem添加到信任列表
    $ sudo cat ca.pem >> /etc/ssl/certs/ca-certificates.crt
    $ sudo /etc/init.d/docker restart
    在修改
    
    /etc/ssl/certs/ca-certificates.crt文件时,会因为该文件是只读的而不能修改,后来通过查询资料,发现在CoreOS中该文件是链接到
    /usr/share/ca-certificates/ca-certificates.crt文件,而/usr整个路径被挂载到只读分区上,详细情况可查询(

    https://coreos.com/blog/new-filesystem-btrfs-cloud-config/

    ),可以通过下面方法解决上面问题
    localhost ~ # cp /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt.bak
    
    localhost ~ # mv /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt.ln
    
    localhost ~ # cp /etc/ssl/certs/ca-certificates.crt.bak /etc/ssl/certs/ca-certificates.crt
    
    localhost ~ # cat ca.pem >> /etc/ssl/certs/ca-certificates.crt

验证

基本认证测试:

localhost ~ # curl -i -k https://larrycai:passwdpasswd[email protected]

HTTP/1.1 200 OK

Server: nginx/1.6.2

Date: Tue, 09 Jun 2015 14:27:33 GMT

Content-Type: application/json

Content-Length: 28

Connection: keep-alive

Expires: -1

Pragma: no-cache

Cache-Control: no-cache

"\"docker-registry server\""l

镜像上传测试:

登录
localhost ~ # docker login -u larrycai -p passwd -e "[email protected]" dokk.coWARNING: login credentials saved in /root/.dockercfg.Login Succeeded
上传


介绍文档参考:http://cloud.51cto.com/art/201412/458680_all.htm
dockerhub参考:https://registry.hub.docker.com/u/larrycai/nginx-auth-proxy/
git参考:https://github.com/Eric-aihua/nginx-auth-proxy

时间: 2024-11-03 05:28:19

通过已有Nginx镜像创建私有仓库的相关文章

docker基础——自定义镜像、创建私有仓库、查看 docker 运行状态

一.自定义镜像 1,案例1 要求:请自定义一个 docker 镜像,基于 hub.c.163.com/library/centos,要求创建出来的镜像在生成容器的时候,可以直接使用 ifconfig 命令 自定义镜像,输入 vim Dockerfile: RUN rpm --import FROM hub.c.163.com/library/centos MAINTAINER suyunanyan RUN rpm --import/etc/pki/rpm-gpg/RPM-GPG-KEY-Cent

在阿里云创建私有仓库上传并拉取

在阿里云上创建私有仓库,为后面的微服务上传镜像做准备,后面会安装harbor 操作指南: 1. 登录阿里云Docker Registry $ sudo docker login --username=wgr332574835 registry.cn-hangzhou.aliyuncs.com 用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码. 您可以在产品控制台首页修改登录密码. 2. 从Registry中拉取镜像 $ sudo docker pull registry.cn-han

品尝阿里云容器服务:用nginx镜像创建容器,体验基于域名的路由机制

在前一篇博文中我们了解了阿里云容器服务的路由机制: 请求 -> 负载均衡80端口 -> 容器主机9080端口 -> acsrouting路由容器80端口 --基于域名--> Web站点容器端口 在这篇博文中,我们用nginx镜像创建一个容器实际体验一下. 使用容器服务首先要创建一个集群(Cluster),比如这里我们创建一个名叫websites的集群(使用的是swarm mode): 创建好集群后,点击“管理”,进入集群管理页面 -> “负载均衡” -> “域名设置”,

[python](Docker SDK)上传镜像到私有仓库(ssl、身份认证)

(Docker SDK)上传镜像到私有仓库(ssl.身份认证) API:https://docker-py.readthedocs.io/en/stable/ 环境:python:3.7.3 配置参数: cert = os.path.join(BASE_DIR, "utils/cert.pem") key = os.path.join(BASE_DIR, "utils/key.pem") docker_server = "xx.xx.xx.xx:5555&

CoreOS环境下通过register镜像搭建私有仓库

Docker支持采用仓库(本处指的是registry)来支持镜像的分发和更新管理.这极大的便利了用户. 官方提供了dockerhub网站来作为一个公开的集中仓库.然而,本地访问dockerhub速度往往很慢,并且很多时候我们需要一个本地的私有仓库只供网内使用. 关于如何创建和使用本地仓库,其实已经有很多文章介绍了.但是这些文章要么内容已经过时,要么给出了错误的配置,导致无法正常创建仓库. 本文以CoreOS系统为基础,讲解如何通过register镜像创建一个本地Repo 1 使用registry

Dokcer创建私有仓库、私有仓库Web管理

1.直接用Docker提供的镜像registry运行私有仓库 # docker run -d -p 5000:5000 -v /data/registry:/var/lib/registry --name registry --restart='always' registry -d : 后台运行 -p : 宿主机跟容器映射端口   SERVER_PORT:CONTAINER_PORT -v : 挂载宿主机目录到容器中作为数据卷, docker registry上传镜像默认存放到容器/var/l

docker创建私有仓库及存储image

Docker官方的Docker hub虽然提供了有很多image,也基本上包含了我们需要使用的,但是其访问起来比较慢,如果自己要定制image,多台服务器之间的共享使用此image非常不方便.这个时候我们就迫切需要一个本地的私有仓库了.下面的图说明了Docker私有仓库的作用. Docker私有仓库可以通过docker-registry项目来实现,通过http服务来上传下载.docker-registry在Docker hub上已有现成的image. $ docker search regist

在Docker中创建私有仓库

仓库简介 随着创建的镜像日益增多,就需要有一个保存镜像的地方,这就是仓库.目前有两种仓库:公共仓库和私有仓库.最方便的就是使用公共仓库上传和下载镜像,下载公共仓库中的镜像不需要注册,但上传镜像到公共仓库是需要注册的.公共仓库中填写完成仓库的ID号.邮箱以及登录仓库的密码并在邮件中进行激活就可以上传自己的镜像. 那么怎么构建属于自己的私有仓库呢?可以使用registry来搭建本地私有仓库. 步骤 下载registry镜像 # docker pull registry 下载完成后的状态: Using

docker创建私有仓库

1.查看远程仓库中的列表$ sudo docker search registry    //会列出你所需要的仓库 2.获取registry仓库$ sudo docker pull registry   //最新 3.运行 $ sudo docker run -p 5000:5000  docker.io/registry   //-p映射端口 3.1查看容器运行情况[[email protected] docker]# docker psCONTAINER ID        IMAGE