试用 Nexus OSS 3.0 的docker仓库 (二)

试用 Nexus OSS 3.0 的docker仓库 (一) : http://www.cnblogs.com/wzy5223/p/5410990.html

 

三. 创建docker私有仓库,docker (hosted)

访问Nexus的主页,https://192.168.31.135:8443 

创建docker (proxy)仓库,内容如下面修改:

Name: docker_hosted
HTTPS: 8889
Enable Docker V1 API:  true 勾选下面的复选框
Blob store: default

修改完成以后登陆docker仓库, 用户名密码: admin/admin123 

docker login 192.168.31.135:8889

 https://docs.docker.com/registry/insecure/#deploy-a-plain-http-registry

测试一个不安全的注册表

预计阅读时间: 4分钟

尽管强烈建议您使用由已知CA颁发的TLS证书来保护您的注册表,但您可以选择使用自签名证书,或通过未加密的HTTP连接使用注册表。这些选择都涉及安全权衡和其他配置步骤。

部署一个普通的HTTP注册表

警告:对于基本身份验证,不可能使用不安全的注册表。

此过程将Docker配置为完全忽略注册表的安全性。这是非常不安全的,不推荐。它使您的注册表暴露于微不足道的中间人(MITM)攻击。只能使用此解决方案进行隔离测试或在严格控制的气隙环境中使用。

  1. 编辑该daemon.json文件,其默认位置 /etc/docker/daemon.json位于Linux或C:\ProgramData\docker\config\daemon.jsonWindows Server上。如果您使用Docker for Mac或Docker for Windows,请单击Docker图标,选择 Preferences,然后选择+ Daemon

    如果该daemon.json文件不存在,请创建它。假设文件中没有其他设置,它应该具有以下内容:

    {
      "insecure-registries" : ["myregistrydomain.com:5000"]
    }
    

    将示例中的不安全注册表的地址替换为示例中的地址。

    在启用不安全的注册表后,Docker将执行以下步骤:

    • 首先,尝试使用HTTPS。
      • 如果HTTPS可用但证书无效,请忽略有关证书的错误。
      • 如果HTTPS不可用,请回退到HTTP。
  2. 重新启动Docker以使更改生效。

在每个想要访问注册表的引擎主机上重复这些步骤。

使用自签名证书

警告:将此与基本身份验证一起使用时,需要将某些版本的Docker的证书信任到OS cert存储中(请参见下文)

这比不安全的注册表解决方案更安全。

  1. 生成您自己的证书:

    $ mkdir -p certs
    
    $ openssl req \
      -newkey rsa:4096 -nodes -sha256 -keyout certs/domain.key \
      -x509 -days 365 -out certs/domain.crt
    

    请务必将该名称myregistrydomain.com用作CN。

  2. 使用结果在启用TLS的情况下启动注册表

  3. 指示每个Docker守护程序信任该证书。做到这一点的方式取决于你的操作系统。

    • Linux:将domain.crt文件复制/etc/docker/certs.d/myregistrydomain.com:5000/ca.crt每个Docker主机上。您不需要重新启动Docker。

    • Windows服务器

      1. 打开Windows资源管理器,右键单击该domain.crt 文件,然后选择安装证书。出现提示时,请选择以下选项:

        商店地址本地机器
        将所有证书放入下列商店
      2. 单击浏览器并选择受信任的根证书颁发机构

      3. 点击完成重新启动Docker。

    • Docker for Mac:按照添加自定义CA证书的说明操作 重新启动Docker。

    • 适用于Windows的Docker:按照添加自定义CA证书的说明操作 重新启动Docker。

解决不安全的注册表问题

本节列出了一些常见故障以及如何从中恢复。

失败...

无法配置Engine守护进程并尝试从未使用TLS的注册表中获取以下消息:

FATA[0000] Error response from daemon: v1 ping attempt failed with error:
Get https://myregistrydomain.com:5000/v1/_ping: tls: oversized record received with length 20527.
If this private registry supports only HTTP or HTTPS with an unknown CA certificate, add
`--insecure-registry myregistrydomain.com:5000` to the daemon's arguments.
In the case of HTTPS, if you have access to the registry's CA certificate, no need for the flag;
simply place the CA certificate at /etc/docker/certs.d/myregistrydomain.com:5000/ca.crt

在使用身份验证时,Docker仍然抱怨证书?

在使用身份验证时,某些版本的Docker还要求您在操作系统级别信任该证书。

UBUNTU的
$ cp certs/domain.crt /usr/local/share/ca-certificates/myregistrydomain.com.crt
update-ca-certificates
红帽企业LINUX
cp certs/domain.crt /etc/pki/ca-trust/source/anchors/myregistrydomain.com.crt
update-ca-trust
ORACLE LINUX
$ update-ca-trust enable

重新启动Docker以使更改生效。

视窗

打开Windows资源管理器,右键单击证书,然后选择 安装证书

然后,选择以下选项:

  • 商店位置:本地机器
  • 请检查下列商店中的所有证书
  • 单击浏览器,然后选择受信任的根证书颁发机构
  • 点击完成

了解有关管理TLS证书的更多信息

将CA证书添加到Windows后,重新启动Docker for Windows。

注册表本地图像标签存储库分发不安全



这时候我们就可以向仓库提交docker镜像了,首先创建一个docker镜像为nexus3,并修改标签为私有私有仓库地址:

docker tag nexus3 ${NEXUS_IP_ADDRESS}:8889/nexus3

然后就可以向docker私有仓库提交镜像了:

docker push ${NEXUS_IP_ADDRESS}:8889/nexus3

 

登陆nexus3仓库浏览页面可以看到nexus3镜像已经上传

 

最后其它客户端可以用下面的命令搜索和下载docker镜像

docker search ${NEXUS_IP_ADDRESS}:8889/nexus3

docker pull ${NEXUS_IP_ADDRESS}:8889/nexus3

 

四. 创建docker仓库群组,docker (group) 

内容如下面修改:

Name: docker_group
HTTPS: 9999
Enable Docker V1 API:  true 勾选下面的复选框
Blob store: default

并将前面创建的代理仓库:"docker" 和 私有托管仓库 "docker_hosted" 添加到Members列表下面:

查看"docker_group" 下的组件,有 "hello-world" 和 “nexus3”

登陆“docker_group”:

docker login ${NEXUS_IP_ADDRESS}:9999

 

然后可以用下面的命令搜索和下载docker镜像

docker search ${NEXUS_IP_ADDRESS}:9999/hello-world

docker pull ${NEXUS_IP_ADDRESS}:9999/nexus3

 

参考资料:

http://www.sonatype.com/download-oss-sonatype

http://books.sonatype.com/nexus-book/3.0/reference/index.html

https://support.sonatype.com/hc/en-us/articles/217542177

 

博客地址:http://www.cnblogs.com/wzy5223
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值