Docker创建私有仓库+SSL+AUTH+WEB

首先注册一个域名 如:docker.xx
首先去腾讯云注册一个域名的CA证书,然后放在/opt/registry/ssl目录下,两个文件docker.xx.crt docker.xx.key

创建WEB:

docker run -d -v /opt/registry/data:/var/lib/registry --restart=always --name registry_local registry:v2
docker run -d -e ENV_DOCKER_REGISTRY_HOST=docker.xx  -e ENV_DOCKER_REGISTRY_PORT=5000 -p 80:80 --link registry_local:docker.xx  konradkleine/docker-registry-frontend:v2

修改 Web容器中 /var/www/html/tag/cat tag-detail.html 的内容。
<span ng-if="registryHost.port != 80 && registryHost.port != 443">
把80改成5000

这样在Web页面中显示每个容器的pull信息,不会有误。【原谅我是个处女座】

创建认证服务器 AUTH-SERVER

docker run -d --privileged --name docker_auth -p 5001:5001 -v /opt/registry/auth_server:/config:ro  -v /opt/registry/ssl/:/ssl cesanta/docker_auth /config/config.yml

config.yml
内容为:

# A simple example. See reference.yml for explanation for explanation of all options.
#
#  auth:
#    token:
#      realm: "https://127.0.0.1:5001/auth"
#      service: "Docker registry"
#      issuer: "Acme auth server"
#      rootcertbundle: "/path/to/server.pem"

server:
  addr: ":5001"
  certificate: "/ssl/docker.xx.crt"
  key: "/ssl/docker.xx.key"

token:
  issuer: "DOCKER AUTH SERVER"  # Must match issuer in the Registry config.
  expiration: 900

users:
  # Password is specified as a BCrypt hash. Use `htpasswd -nB USERNAME` to generate.
  "admin":
    password: "$2y$05$LO.vzwpWC5LZGqThvEfznu8qhb5SGqvBSWY1J3yZ4AxtMRZ3kN5jC"  # badmin


acl:
  - match: {account: "admin"}
    actions: ["*"]
    comment: "Admin has full access to everything."

  - match: {account: "/.+/", name: "${account}/*"}
    actions: ["*"]
    comment: "User has full access to his images"

  - match: {account: "/.+/"}
    actions: ["pull"]
    comment: "All users can pull everything."

  - match: {account: ""}
    actions: ["pull"]
    comment: "Not login user can pull everything."

  # Access is denied by default.

最后创建仓库容器

docker run -d -p 443:5000 -e REGISTRY_AUTH=token -e REGISTRY_AUTH_TOKEN_REALM=https://docker.xx:5001/auth -e REGISTRY_AUTH_TOKEN_SERVICE="Docker registry" -e REGISTRY_AUTH_TOKEN_ISSUER="DOCKER AUTH SERVER" -e REGISTRY_AUTH_TOKEN_ROOTCERTBUNDLE=/certs/docker.xx.crt -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/docker.xx.crt -e REGISTRY_HTTP_TLS_KEY=/certs/docker.xx.key -v /opt/registry/ssl/:/certs -v /opt/registry:/var/lib/registry --restart=always --name registry_ssl  --privileged registry


OK
Docker login docker.xx
admin
badmin

Web界面是 http://docker.xx:5002
auth-server https://docker.xx:5001
registry https://docker.xx

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,991评论 19 139
  • 主要思路: 1. Docker Registry 说明 关于如何创建和使用本地仓库,其实已经有很多文章介绍了。因为...
    威谷子阅读 5,721评论 0 30
  • Docker — 云时代的程序分发方式 要说最近一年云计算业界有什么大事件?Google Compute Engi...
    ahohoho阅读 15,636评论 15 147
  • 自从有了互联网,网恋就成了被人们揉来揉去的话题。 网络是一个天堂和地狱的合体,使得好多人趋之若鹜地放逐自己所有的情...
    云可彦阅读 129评论 0 0
  • 一阵狂风卷过,天地霎时变色,漂泊的大雨瞬时倾盆而下。前一刻,仿佛看到了一日的晴朗;这一刻,却又是昏天暗地。淅沥沥的...
    孟浪之言阅读 173评论 0 0