xml地图|网站地图|网站标签 [设为首页] [加入收藏]
来自 新濠国际登录平台 2019-10-06 21:29 的文章
当前位置: 新濠国际登录平台 > 新濠国际登录平台 > 正文

既然官方提供了镜像仓库我们为什么还要去自己

一、Docker hub 交互

    Docker hub 是 Docker 官方维护的一个公共仓库,大部分需求都可以通过在 Docker hub 中直接下载镜像来完成。接下来,来看一下怎么与 Docker hub 进行交互,包括登陆登出以及将本地镜像推送到 Docker hub 等...

注册:https://hub.docker.com/ 注册的时候需要FQ~~

登陆:docker login 

新濠国际登录平台 1

登出:docker logout

搜索镜像

docker search [name] --filter=stars=30
                     --filter=stars=N (参数可以指定仅显示收藏数量为 N 以上的镜像)

新濠国际登录平台 2

拉取镜像:docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]

推送镜像

#1、打镜像标签(username 表示Docker账号用户名)
docker tag REPOSITORY[:tag] username/REPOSITORY[:tag]
docker tag myenv:1.0 jmcui/myenv:1.0

#2、推送到Docker hub
docker push username/REPOSITORY[:tag]
docker push jmcui/myenv:1.0

主要思路:

新濠国际登录平台 3

Docker入门之搭建私有企业级镜像仓库Harbor

新濠国际登录平台 4

二、创建 Docker 私库(基于HTTP)

    在企业中把内部的一些工具包放入 Nexus 中是比较常见的做法,最新版本 Nexus3.x 全面支持 Docker 的私有镜像。所以使用 Nexus3.x 一个软件来管理 Docker , Maven , Yum , PyPI 等是一个明智的选择。

  1. Docker Registry 说明

为什么要搭建私有镜像仓库

  对于一个刚刚接触Docker的人来说,官方的Docker hub是用于管理公共镜像。既然官方提供了镜像仓库我们为什么还要去自己搭建私有仓库呢?虽然也可以托管私有镜像。我们可以非常方便的把我们自己镜像推送上去,但是Docker hub提供的私有仓库个数有限。对于个人来说Docker hub是个不错的选择,但是对于企业来说,相对于安全 ,成本和公司的架构来说搭建自己的私有镜像仓库才是正确的道路。

为什么要搭建私有镜像仓库

  对于一个刚刚接触Docker的人来说,官方的Docker hub是用于管理公共镜像。既然官方提供了镜像仓库我们为什么还要去自己搭建私有仓库呢?虽然也可以托管私有镜像。我们可以非常方便的把我们自己镜像推送上去,但是Docker hub提供的私有仓库个数有限。对于个人来说Docker hub是个不错的选择,但是对于企业来说,相对于安全 ,成本和公司的架构来说搭建自己的私有镜像仓库才是正确的道路。

1、使用 Docker 安装 Nexus

docker run -d --name nexus3 --restart=always -p 8081:8081 -p 8082:8082 -p 8083:8083 --mount src=nexus-data,target=/nexus-data sonatype/nexus3
## 8081:nexus3网页端
## 8082:docker(hosted)私有仓库,可以pull和push
## 8083:docker(proxy)代理远程仓库,只能pull 

关于如何创建和使用本地仓库,其实已经有很多文章介绍了。因为docker技术正处于发展和完善阶段,所以有些文章要么内容已经过时,要么给出了错误的配置,导致无法正常创建仓库。本文记录的是个人完整的搭建过程,docker version为1.1.2。

什么是Harbor?为什么要选择Harbor

  Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution。作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全。提升用户使用Registry构建和运行环境传输镜像的效率。Harbor支持安装在多个Registry节点的镜像资源复制,镜像全部保存在私有Registry中, 确保数据和知识产权在公司内部网络中管控。另外,Harbor也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。

  • 基于角色的访问控制 - 用户与Docker镜像仓库通过“项目”进行组织管理,一个用户可以对多个镜像仓库在同一命名空间(project)里有不同的权限。
  • 镜像复制 - 镜像可以在多个Registry实例中复制(同步)。尤其适合于负载均衡,高可用,混合云和多云的场景。
  • 图形化用户界面 - 用户可以通过浏览器来浏览,检索当前Docker镜像仓库,管理项目和命名空间。
  • AD/LDAP 支持 - Harbor可以集成企业内部已有的AD/LDAP,用于鉴权认证管理。
  • 审计管理 - 所有针对镜像仓库的操作都可以被记录追溯,用于审计管理。
  • 国际化 - 已拥有英文、中文、德文、日文和俄文的本地化版本。更多的语言将会添加进来。
  • RESTful API - RESTful API 提供给管理员对于Harbor更多的操控, 使得与其它管理软件集成变得更容易。
  • 部署简单 - 提供在线和离线两种安装工具, 也可以安装到vSphere平台(OVA方式)虚拟设备。
    这就是官网原话。完美解释了什么是Harbor?为什么要选择Harbor。上面解释那么多的Harbor, 现在我们来开始安装吧。

    #### Harbor安装

      要安装Harbor,有以下几个先决条件:
        Python版本大于或者等于2.7     Docker engine的版本大于等于1.10
        Docker Compose的版本大于1.6.0

  首先我们需要检查自己服务器是否支持上面3个条件。输入以下代码检查

#python2.7官网安装页面

#检查Python版本.Ubuntu 16.04已经集成了python2.7。
python -V
#检查Docker的版本
docker -v
#Docker Compose安装脚本
sudo curl -L -s`-`uname -m` -o /usr/local/bin/docker-compose
#检查Docker Compose的版
docker-compose --version
#如果提示Permission denied。执行以下语句赋权
sudo chmod +x /usr/local/bin/docker-compose

  确保服务器上的软件版本已经满足以上要求之后。我们现在开始安装Harbor。如果不知道怎么安装docker 可以参考  https://www.linuxidc.com/Linux/2018-03/151318.htm

什么是Harbor?为什么要选择Harbor

  Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution。作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全。提升用户使用Registry构建和运行环境传输镜像的效率。Harbor支持安装在多个Registry节点的镜像资源复制,镜像全部保存在私有Registry中, 确保数据和知识产权在公司内部网络中管控。另外,Harbor也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。

  • 基于角色的访问控制 - 用户与Docker镜像仓库通过“项目”进行组织管理,一个用户可以对多个镜像仓库在同一命名空间(project)里有不同的权限。
  • 镜像复制 - 镜像可以在多个Registry实例中复制(同步)。尤其适合于负载均衡,高可用,混合云和多云的场景。
  • 图形化用户界面 - 用户可以通过浏览器来浏览,检索当前Docker镜像仓库,管理项目和命名空间。
  • AD/LDAP 支持 - Harbor可以集成企业内部已有的AD/LDAP,用于鉴权认证管理。
  • 审计管理 - 所有针对镜像仓库的操作都可以被记录追溯,用于审计管理。
  • 国际化 - 已拥有英文、中文、德文、日文和俄文的本地化版本。更多的语言将会添加进来。
  • RESTful API - RESTful API 提供给管理员对于Harbor更多的操控, 使得与其它管理软件集成变得更容易。
  • 部署简单 - 提供在线和离线两种安装工具, 也可以安装到vSphere平台(OVA方式)虚拟设备。
    这就是官网原话。完美解释了什么是Harbor?为什么要选择Harbor。上面解释那么多的Harbor, 现在我们来开始安装吧。

    #### Harbor安装

      要安装Harbor,有以下几个先决条件:
        Python版本大于或者等于2.7     Docker engine的版本大于等于1.10
        Docker Compose的版本大于1.6.0

  首先我们需要检查自己服务器是否支持上面3个条件。输入以下代码检查

#python2.7官网安装页面

#检查Python版本.Ubuntu 16.04已经集成了python2.7。
python -V
#检查Docker的版本
docker -v
#Docker Compose安装脚本
sudo curl -L -s`-`uname -m` -o /usr/local/bin/docker-compose
#检查Docker Compose的版
docker-compose --version
#如果提示Permission denied。执行以下语句赋权
sudo chmod +x /usr/local/bin/docker-compose

  确保服务器上的软件版本已经满足以上要求之后。我们现在开始安装Harbor。如果不知道怎么安装docker 可以参考 

2、登陆

    访问 http:// ip地址:8081 默认账号:admin,默认密码:admin123

新濠国际登录平台 5

官方提供了Docker Hub网站来作为一个公开的集中仓库。然而,本地访问Docker Hub速度往往很慢,并且很多时候我们需要一个本地的私有仓库只供网内使用。

下载Harbor

#下载安装包
wget
#解压
tar -xzf harbor-offline-installer-v1.1.2.tgz
cd harbor
#编辑配置文件
vi harbor.cfg

下载Harbor

#下载安装包
wget
#解压
tar -xzf harbor-offline-installer-v1.1.2.tgz
cd harbor
#编辑配置文件
vi harbor.cfg

 3、创建私有仓库

    页面上方的齿轮按钮 —> Repository —> Repositories —> Create repository —> 选择 docker (hosted)

新濠国际登录平台 6

      还可以创建一个 docker (proxy) 类型的仓库链接到 DockerHub 上。再创建一个 docker (group) 类型的仓库把刚才的 hosted 与 proxy 添加在一起。主机在访问的时候默认下载私有仓库中的镜像,如果没有将链接到 DockerHub 中下载并缓存到 Nexus 中。

Docker仓库实际上提供两方面的功能,一个是镜像管理,一个是认证。前者主要由docker-registry项目来实现,通过http服务来上传下载;后者可以通过docker-index(闭源)项目或者利用现成认证方案(如nginx)实现http请求管理。

配置文件注释参考]

## Configuration file of Harbor

#设置访问地址,支持IP,域名,主机名,禁止设置127.0.0.1
hostname = reg.mydomain.com

#访问方式,http或者https
ui_url_protocol = http

#邮件通知相关设置
email_server = smtp.mydomain.com
email_server_port = 25
email_username = sample_admin@mydomain.com
email_password = abc
email_from = admin <sample_admin@mydomain.com>
email_ssl = false

#用户登录密码
harbor_admin_password = Harbor12345

#harbor认证模式,默认为db_auth,本地mysql,也可以配置ldap认证
auth_mode = db_auth

#ldap认证配置
ldap_url = ldaps://ldap.mydomain.com
ldap_basedn = ou=people,dc=mydomain,dc=com
ldap_uid = uid
ldap_scope = 3

#mysql数据库设置
db_password = root123
self_registration = on
use_compressed_js = on
max_job_workers = 3
token_expiration = 30
verify_remote_cert = on
customize_crt = on

#显示的认证及组织信息
crt_country = CN
crt_state = State
crt_location = CN
crt_organization = organization
crt_organizationalunit = organizational unit
crt_commonname = example.com
crt_email = example@example.com
project_creation_restriction = everyone

#SSL证书地址。只有开启https访问才生效
ssl_cert = /data/cert/server.crt
ssl_cert_key = /data/cert/server.key
#############

  以上按照自己需求修改。如果想开启https模式访问需要自己申请ssl证书。harbor默认监听80端口。如果需要修改端口。请修改目录下的docker-compose.yml文件,
新濠国际登录平台 7
修改完成之后。运行

sudo ./install.sh

  进行安装。安装完成之后他会自己启动。这里他会自己下载一些他所需的images。过程有点慢。可以通过阿里云的镜像加速器来加速。阿里云镜像加速器 .打开链接登录之后点击镜像加速。然后你会得到一个专属加速地址。如图
新濠国际登录平台 8可以根据自己的环境查看文档安装使用。然后等待命令执行结束。
新濠国际登录平台 9

配置文件注释参考]

## Configuration file of Harbor

#设置访问地址,支持IP,域名,主机名,禁止设置127.0.0.1
hostname = reg.mydomain.com

#访问方式,http或者https
ui_url_protocol = http

#邮件通知相关设置
email_server = smtp.mydomain.com
email_server_port = 25
email_username = [email protected]
email_password = abc
email_from = admin <[email protected]>
email_ssl = false

#用户登录密码
harbor_admin_password = Harbor12345

#harbor认证模式,默认为db_auth,本地mysql,也可以配置ldap认证
auth_mode = db_auth

#ldap认证配置
ldap_url = ldaps://ldap.mydomain.com
ldap_basedn = ou=people,dc=mydomain,dc=com
ldap_uid = uid
ldap_scope = 3

#mysql数据库设置
db_password = root123
self_registration = on
use_compressed_js = on
max_job_workers = 3
token_expiration = 30
verify_remote_cert = on
customize_crt = on

#显示的认证及组织信息
crt_country = CN
crt_state = State
crt_location = CN
crt_organization = organization
crt_organizationalunit = organizational unit
crt_commonname = example.com
crt_email = [email protected]
project_creation_restriction = everyone

#SSL证书地址。只有开启https访问才生效
ssl_cert = /data/cert/server.crt
ssl_cert_key = /data/cert/server.key
#############

  以上按照自己需求修改。如果想开启https模式访问需要自己申请ssl证书。harbor默认监听80端口。如果需要修改端口。请修改目录下的docker-compose.yml文件,
新濠国际登录平台 10
修改完成之后。运行

sudo ./install.sh

  进行安装。安装完成之后他会自己启动。这里他会自己下载一些他所需的images。过程有点慢。可以通过阿里云的镜像加速器来加速。阿里云镜像加速器 .打开链接登录之后点击镜像加速。然后你会得到一个专属加速地址。如图
新濠国际登录平台 11可以根据自己的环境查看文档安装使用。然后等待命令执行结束。
新濠国际登录平台 12

4、配置支持 HTTP

    Docker 默认不允许非 HTTPS 方式推送镜像。我们可以通过 Docker 的配置选项来取消这个限制,(Ubuntu 16.04+, Debian 8+, centos 7)在 /etc/docker/daemon.json 中写入如下内容:

{
  "registry-mirrors": [
    "https://registry.docker-cn.com"
  ],
  "insecure-registries": [
    "xx.xx.xx.xx:8082"
  ]
}

     重启 Docker :

$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

docker-registry既然也是软件应用,自然最简单的方法就是使用官方提供的已经部署好的镜像registry。官方文档中也给出了建议,直接运行sudo docker run -p 5000:5000 registry命令。这样确实能启动一个registry服务器,但是所有上传的镜像其实都是由docker容器管理,放在了/var/lib/docker/….某个目录下。而且一旦删除容器,镜像也会被删除。因此,我们需要想办法告诉docker容器镜像应该存放在哪里。registry镜像中启动后镜像默认位置是/tmp/registry,因此直接映射这个位置即可,比如到本机的/opt/data/registry目录下。

开启https

  如果使用http的这里可以跳过,我们把已经申请好的证书文件放到/data/cert 目录下面。然后修改harbor.cfg文件

新濠国际登录平台 13
  安装成功之后打开之前自己设定的域名或者IP地址。测试地址 。测试用户名:harbor_test,测试密码:Harbor_test123
新濠国际登录平台 14

开启https

  如果使用http的这里可以跳过,我们把已经申请好的证书文件放到/data/cert 目录下面。然后修改harbor.cfg文件

新濠国际登录平台 15
  安装成功之后打开之前自己设定的域名或者IP地址。测试地址 。测试用户名:harbor_test,测试密码:Harbor_test123
新濠国际登录平台 16

5、验证效果

#1、登陆
docker login xx.xx.xx.xx:8082
#2、私库标签
docker tag myenv:1.0  xx.xx.xx.xx:8082/myenv
#3、推送镜像到私有仓库
docker push xx.xx.xx.xx:8082/myenv
#4、查看私有仓库镜像,验证是否推送成功
curl xx.xx.xx.xx:8082/v2/_catalog
#5、拉取私有仓库镜像
docker pull xx.xx.xx.xx:8082/myenv
  1. 在CentOS上搭建docker私服

使用harbor

使用harbor

三、私有仓库高级配置(HTTPS 认证)

    下面,我们将要搭建的私有仓库地址为 docker.domain.com,使用 openssl 自行签发 docker.domain.com 的站点 SSL 证书,并用 Docker Compose 搭建一个拥有权限认证、TLS 的私有仓库。

    由于是在 Centos 7 下玩的 Docker ,首先要解决 Docker Compose 安装的问题。

2.1 安装docker-registry

创建用户

harbor已经创建成功。现在我们来开始创建一个用户。
新濠国际登录平台 17

创建用户

harbor已经创建成功。现在我们来开始创建一个用户。
新濠国际登录平台 18

1、安装 Docker Compose

x86_64 架构的 Linux 建议安装如下:

    从 官方 GitHub Release 处选择最新版本安装,类似如下~

#1、直接下载对应的二进制包
curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
#2、添加环境变量
export PATH=$PATH:/usr/local/bin/docker-compose

#卸载
sudo rm /usr/local/bin/docker-compose

ARM 架构的 Linux 建议安装如下:

#1、检查linux有没有安装python-pip包
 pip -V
#2、执行安装 epel-release 包
 yum -y install epel-release
#3、执行安装 python-pip 包
 yum install python-pip
#4、对安装好的pip进行升级
 pip install --upgrade pip
#5、再次验证pip是否安装成功
 pip -V
#6、安装Docker-Compose(失败的话可重复多次)
 pip --default-timeout=300 install -U docker-compose --ignore-installed requests
#7、检查docker-compose 安装
 docker-compose -version

#卸载
sudo pip uninstall docker-compose
yum -y remove python-pip
yum -y remove epel-release

bash 补全命令 :sudo curl -L -o /etc/bash_completion.d/docker-compose

 

直接用容器来执行Docker Compose:

curl -L https://github.com/docker/compose/releases/download/1.22.0/run.sh > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

方法有多种,直接运行下面的命令:

创建项目

创建项目,并添加用户
新濠国际登录平台 19

创建项目

创建项目,并添加用户
新濠国际登录平台 20

2、HTTPS 认证

    因为对 HTTPS 的那些证书认证什么的,着实没有什么大的概念,就不在这里大夸其辞了。国内各大云服务商均提供了免费的站点证书,常见的做法是:申请个域名,绑定服务器IP,然后下载云服务提供的证书,添加认证即可。

    这里的做法是使用 openssl 自行签发 docker.domain.com 的站点 SSL 证书,也是看着步骤,一步步傻瓜式操作下来的,就不献丑了。具体步骤可以参考:https://yeasy.gitbooks.io/docker_practice/content/repository/registry_auth.html

    至于坑,那还是有的,比如上面的 Docker Compose 安装就折腾了好久。另外需要注意的是,最后生成的文件都要放在 /etc/docker 相关目录下,目录结构如下:

新濠国际登录平台 21

新濠国际登录平台 22

 

参考资料:《Docker — 从入门到实践》

# docker run -d -e SETTINGS_FLAVOR=dev -e STORAGE_PATH=/tmp/registry -v /opt/data/registry:/tmp/registry  -p 5000:5000 registry

上传镜像

首先使用docker login命令登录:

#登录
robin:~ robin$ sudo docker login shepherd618.cn
Username: admin
Password:
Login Succeeded
#查看本地镜像
robin:docker_demo robin$ sudo docker images
Password:
REPOSITORY          TAG                IMAGE ID            CREATED            SIZE
docker_demo        latest              fdd994bee741        19 seconds ago      283MB
node                8.9-alpine          406f227b21f5        2 weeks ago        68.1MB
#给dcoker_demo新增tag
robin:docker_demo robin$ sudo docker tag docker_demo shepherd618.cn/test/demo
#push images
robin:docker_demo robin$ docker push shepherd618.cn/test/demo
The push refers to repository [shepherd618.cn/test/demo]
f8387a884f73: Layer already exists
d74f9d9e7013: Pushed
f846841ed47f: Layer already exists
0198944a9875: Layer already exists
9dfa40a0da3b: Layer already exists
latest: digest: sha256:5b33acc5edf6f48cbd8e7ccd216daa4a7da1ebd4871fbc68bc2517136f1ccf44 size: 1374

然后打开harbor,会看到刚刚上传的images和操作日志
新濠国际登录平台 23

当我们需要用到这个images的时候可以通过上面给的pull命令下载到本地。到此整个安装过程结束。

本文永久更新链接地址

新濠国际登录平台 24

上传镜像

首先使用docker login命令登录:

#登录
robin:~ robin$ sudo docker login shepherd618.cn
Username: admin
Password:
Login Succeeded
#查看本地镜像
robin:docker_demo robin$ sudo docker images
Password:
REPOSITORY          TAG                IMAGE ID            CREATED            SIZE
docker_demo        latest              fdd994bee741        19 seconds ago      283MB
node                8.9-alpine          406f227b21f5        2 weeks ago        68.1MB
#给dcoker_demo新增tag
robin:docker_demo robin$ sudo docker tag docker_demo shepherd618.cn/test/demo
#push images
robin:docker_demo robin$ docker push shepherd618.cn/test/demo
The push refers to repository [shepherd618.cn/test/demo]
f8387a884f73: Layer already exists
d74f9d9e7013: Pushed
f846841ed47f: Layer already exists
0198944a9875: Layer already exists
9dfa40a0da3b: Layer already exists
latest: digest: sha256:5b33acc5edf6f48cbd8e7ccd216daa4a7da1ebd4871fbc68bc2517136f1ccf44 size: 1374

然后打开harbor,会看到刚刚上传的images和操作日志
新濠国际登录平台 25

当我们需要用到这个images的时候可以通过上面给的pull命令下载到本地。到此整个安装过程结束。

本文永久更新链接地址:

为什么要搭建私有镜像仓库 对于一个刚刚接触Docker的人来说,官方的Docker hub是用于管理公共镜像。...

# docker run -d -e SETTINGS_FLAVOR=dev -e STORAGE_PATH=/tmp/registry -v /opt/data/registry:/tmp/registry  -p 5000:5000 registry

# git clone

# cd docker-registry && mkdir -p /opt/data/registry

# docker build -t "local-sean" .

build完成后,就可以运行这个docker-registry

我们先配置自己的config.yml文件,第一种方法是直接在run的时候指定变量

# cp config/config_sample.yml /opt/data/registry/config.yml

# vi /opt/data/registry/config.yml

##这里可以设置本地存储SETTINGS_FLAVOR=dev,local STORAGE_PATH:/tmp/registry等待

# docker run -d -v /opt/data/registry:/tmp/registry -p 5000:5000 -e  DOCKER_REGISTRY_CONFIG=/tmp/registry/config.yml registry

docker run -d -e SETTINGS_FLAVOR=dev -e STORAGE_PATH=/tmp/registry -v /db/docker-images:/tmp/registry -p 5000:5000 registry

2.2 客户端使用

要从私服上获取镜像或向私服提交镜像,现在变得非常简单,只需要在仓库前面加上私服的地址和端口,形如172.29.88.222:5000/centos6。注意,这里可以选择不使用IP,而是用hostname,如registry.domain.com:5000,但不能仅用不带.的主机名registry,docker会认为registry是用户名,建议使用带域名的hostname加port来表示。

于是在另外一台要使用docker的主机上就可以通过这台私服拉取和推送镜像了:

从私服上搜索存在哪些可用镜像

# curl -X GET

{"num_results": 2, "query": "", "results": [{"description": "", "name": "library/centos6"}, {"description": "", "name": "library/nginx"}]}

按条件搜索nginx

# curl -X GET

拉取image到本地

docker pull library/centos6

## 本地对份镜像启动起来,形成container

## 给container去另外一个名字

# docker tag 68edf809afe7 registry.domain.com:5000/centos6-test

## 最后将新的docker images推送到私服上

docker push registry.domain.com:5000/centos6-test

第一次push到私服上时会提示用户名、密码和邮箱,创建即可。也可以在docker私服端加入认证机制。

  1. 加入nginx认证

(请在实际操作以前,先阅读完本节,再确定是否在前端加入nginx)

3.1 安装及配置nginx

从上面的过程可以看到,除非防火墙限制,否则任何主机可以创建账号并想私服推送镜像,更安全的做法是在外层加入登录认证机制。

最好安装1.4.x版本,不然下面的有些配置可能会不兼容

# yum install nginx

创建两个登录用户

# htpasswd -c /etc/nginx/docker-registry.htpasswd sean

New password:

Re-type new password:

Adding password for user sean

# htpasswd /etc/nginx/docker-registry.htpasswd itsection

为了让nginx使用这个密码文件,并且转发8080端口的请求到Docker Registry,新增nginx配置文件

vi /etc/nginx/sites-enabled/docker-registry:

# For versions of Nginx > 1.3.9 that include chunked transfer encoding support

# Replace with appropriate values where necessary

upstream docker-registry {

server localhost:5000;

}

server {

listen 8080;

server_name sean.domain.com;  -- your registry server_name

# ssl on;

# ssl_certificate /etc/ssl/certs/docker-registry;

# ssl_certificate_key /etc/ssl/private/docker-registry;

proxy_set_header Host      $http_host;  # required for Docker client sake

proxy_set_header X-Real-IP  $remote_addr; # pass on real client IP

client_max_body_size 0; #新濠国际登录平台, disable any limits to avoid HTTP 413 for large image uploads

# required to avoid HTTP 411: see Issue #1486 ()

chunked_transfer_encoding on;

location / {

本文由新濠国际登录平台发布于新濠国际登录平台,转载请注明出处:既然官方提供了镜像仓库我们为什么还要去自己

关键词: