前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >超详细记录公司多用户Docker仓库创建安全认证和应用

超详细记录公司多用户Docker仓库创建安全认证和应用

作者头像
王小雷
发布2018-01-02 16:04:14
1.6K0
发布2018-01-02 16:04:14
举报
文章被收录于专栏:王小雷

概述:超详细记录建立公司内部多用户Docker仓库,自定义CA证书,https安全认证。服务器作为远程Docker仓库,其他开发端(如server2,server3等)添加认证并登录,多开发端可以上传下载公司内部的docker仓库的镜像。公司的CI,CD用内部docker镜像仓库上传和下载方便,安全,方便统一管理公司容器镜像。

默认Docker在服务器端和开发端已经安装完毕,若没有,可参考我另一篇博文Ubuntu16.04安装Docker1.12+开发实例+hello world+web应用容器

1.服务器端(server1)操作。下载Docker仓库镜像,创建CA证书,创建docker仓库。

1.1.下载docker镜像

代码语言:javascript
复制
docker pull registry:2

1.2.在服务器端创建自定义签发的CA证书

代码语言:javascript
复制
mkdir -p ~/docker/certs && openssl req \
  -newkey rsa:4096 -nodes -sha256 -keyout ~/docker/certs/domain.key \
  -x509 -days 365 -out ~/docker/certs/domain.crt

输出如下信息:

代码语言:javascript
复制
Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:zhejiang
Locality Name (eg, city) []:hangzhou
Organization Name (eg, company) [Internet Widgits Pty Ltd]:rz
Organizational Unit Name (eg, section) []:rz
Common Name (e.g. server FQDN or YOUR name) []:wangxiaolei.com     
Email Address []:wov@outlook.com

注意自定域名,如wangxiaolei.comCommon Name (e.g. server FQDN or YOUR name) []:wangxiaolei.com

1.3.添加多用户信息,创建仓库的用户名,密码。

  • a.docker仓库添加用户的登录用户名和密码。
代码语言:javascript
复制
mkdir -p ~/docker/auth
代码语言:javascript
复制
docker run --entrypoint htpasswd registry:2 -Bbn wangxiaolei 123456 >>~/docker/auth/htpasswd
  • b.docker仓库添加多位开发人员信息。
代码语言:javascript
复制
docker run --entrypoint htpasswd registry:2 -Bbn wangxiaolei1 123456 >>~/docker/auth/htpasswd
docker run --entrypoint htpasswd registry:2 -Bbn wangxiaolei2 123456 >>~/docker/auth/htpasswd
docker run --entrypoint htpasswd registry:2 -Bbn wangxiaolei3 123456 >>~/docker/auth/htpasswd

1.4.重启docker服务

代码语言:javascript
复制
sudo service docker restart

1.5.创建registry容器

代码语言:javascript
复制
docker run -d -p 5000:5000 --restart=always --name registry \
  -v ~/docker/auth:/auth \
  -e "REGISTRY_AUTH=htpasswd" \
  -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
  -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
  -v ~/docker/certs:/certs \
  -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
  -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \
  registry:2

1.6.通过sftp或者scp将远程仓库服务器端的docker.crt下载到开发端(如用户xiaolei的开发端)

代码语言:javascript
复制
scp ~/docker/certs/domain.crt xiaolei@192.168.148.239:~

2.多客户端操作。CA授信,登录创建好的远程docker仓库(server2或server3等等,都进行如下操作即可)。

2.1.将1.6步骤的domain.crt放到docker的对应位置。

  • ubuntu系统
代码语言:javascript
复制
sudo mkdir -p ~/certs.d/wangxiaolei.com:5000
代码语言:javascript
复制
sudo cp  ~/domain.crt /etc/docker/certs.d/wangxiaolei.com:5000/ca.crt
  • redhat系统
代码语言:javascript
复制
cp ~/domain.crt /usr/local/share/ca-certificates/myregistrydomain.com.crt

2.2.登录远程docker仓库

  • 2.2.1.将域名和服务器ip映射(如果是真实能访问绑定的域名则省略此步骤)
代码语言:javascript
复制
sudo vim /etc/hosts
代码语言:javascript
复制
#在/etc/hosts添加如下内容
192.168.0.133 wangxiaolei.com
  • 2.2.2.登录远程Docker仓库
代码语言:javascript
复制
docker login wangxiaolei.com:5000

2.3.从官网上下载alpine镜像,标记然后推送到刚刚创建好的docker远程仓库中。

  • 2.3.1.官网仓库下载alpine镜像 docker pull alpine
  • 2.3.2.创建新的镜像(打标签) docker tag alpine wangxiaolei.com:5000/alpine:v1 其中,
    • tag为标签操作。
    • alpine为已经存在的alpine镜像,默认版本为latest。
    • wangxiaolei.com为域名,5000为端口。
    • alpine为自定义的镜像名称,v1为自定义的版本号。
  • 2.3.3.上传新创建的镜像到自己的远程docker仓库 docker push wangxiaolei.com:5000/alpine:v1

2.4.其他内部开发人员可以使用 docker pull wangxiaolei.com:5000/alpine:v1下载alpine镜像

3.查看docker仓库上有哪些镜像。

3.1.此时,登入https://wangxiaolei.com:5000/v2/_catalog

3.2.输入开发人员的信息,用户名和密码

3.3.查看内部Docker仓库中已有alpine的镜像

3.4.相关参考文档

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.服务器端(server1)操作。下载Docker仓库镜像,创建CA证书,创建docker仓库。
    • 1.1.下载docker镜像
      • 1.2.在服务器端创建自定义签发的CA证书
        • 1.3.添加多用户信息,创建仓库的用户名,密码。
          • 1.4.重启docker服务
            • 1.5.创建registry容器
              • 1.6.通过sftp或者scp将远程仓库服务器端的docker.crt下载到开发端(如用户xiaolei的开发端)
              • 2.多客户端操作。CA授信,登录创建好的远程docker仓库(server2或server3等等,都进行如下操作即可)。
                • 2.1.将1.6步骤的domain.crt放到docker的对应位置。
                  • 2.2.登录远程docker仓库
                    • 2.3.从官网上下载alpine镜像,标记然后推送到刚刚创建好的docker远程仓库中。
                      • 2.4.其他内部开发人员可以使用 docker pull wangxiaolei.com:5000/alpine:v1下载alpine镜像
                      • 3.查看docker仓库上有哪些镜像。
                        • 3.1.此时,登入https://wangxiaolei.com:5000/v2/_catalog
                          • 3.2.输入开发人员的信息,用户名和密码
                            • 3.3.查看内部Docker仓库中已有alpine的镜像
                              • 3.4.相关参考文档
                              相关产品与服务
                              容器镜像服务
                              容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
                              领券
                              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档