docker-2 docker搭建带有访问认证的私有仓库(转)

本文章为转载

以下步骤均为本人亲自踩坑,历经数次失败,最终搭建成功 
一、环境信息: 
操作系统:CentOS 7 
Docker版本:1.12.5 (更高版本应该类似) 
registry:2.4.1 
registry-web: hyper/docker-registry-web:latest 
二、搭建步骤: 
1、拉取镜像registry(仓库)和registry-web(用于访问仓库的UI界面):

  1. docker pull hyper/docker-registry-web
  2. docker pull registry:2.4.1


2、下载docker-compose(一种简化复杂容器应用的利器,具体使用可参见官网) 
官网下载链接:https://docs.docker.com/compose/install/ 
懒人可以直接使用下面的命令即可下载

  1. curl -L https://github.com/docker/compose/releases/download/1.13.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose


下载完成后更改docker-compose的权限:

  1. chmod 755 /usr/local/bin/docker-compose


3、创建几个目录,用于存放配置文件和作为私有仓库的镜像存储目录

  1. mkdir -p /data/registry_dir/conf/registry   #存放仓库的配置信息
  2. mkdir -p /data/registry_dir/conf/registry-web #存放仓库UI界面的配置信息
  3. mkdir -p /data/registry_dir/registry  #存放仓库的镜像
  4. mkdir -p /data/registry_dir/db  #仓库的访问信息


4、生成证书

  1. openssl req -new -newkey rsa:4096 -days 365 \
  2.                 -subj "/CN=localhost" \
  3.                 -nodes -x509  \
  4.                 -keyout /data/registry_dir/conf/registry-web/auth.key \
  5.                 -out /data/registry_dir/conf/registry/auth.cert


5、创建yml配置文件 
###创建仓库的配置文件 
vim /data/registry_dir/conf/registry/config.yml

  1. version: 0.1
  2. storage:
  3.   filesystem:
  4.     rootdirectory: /var/lib/registry
  5. http:
  6.   addr: 0.0.0.0:5000
  7. auth:
  8.   token:
  9.     realm: http://localhost:8080/api/auth
  10.     service: localhost:5000
  11.     issuer: 'admin'
  12.     rootcertbundle: /etc/docker/registry/auth.cert


###创建仓库UI的配置文件 
vim /data/registry_dir/conf/registry-web/config.yml

  1. registry:
  2.     url: http://registry-srv:5000/v2
  3.     name: localhost:5000
  4.     readonly: false
  5.     auth:
  6.         enabled: true
  7.         issuer: 'admin'
  8.         key: /conf/auth.key


###创建docker-compose启动配置文件 
vim /data/registry_dir/docker-compose.yml

  1. version: '2'
  2. services:
  3.   registry-web:
  4.     image: hyper/docker-registry-web:latest
  5.       ports:
  6.         - 8080:8080
  7.       volumes:
  8.          - /data/registry_dir/conf/registry-web:/conf:ro
  9.          - /data/registry_dir/db:/data
  10.      networks:
  11.        - registry-net
  12.      depends_on:
  13.         - registry
  14.      restart: always
  15. registry:
  16.   image: registry:2.4.1
  17.   ports:
  18.     - 5000:5000
  19.   volumes:
  20.     - /data/registry_dir/conf/registry:/etc/docker/registry:ro
  21.     - /data/registry_dir/registry:/var/lib/registry
  22.   environment:
  23.     - REGISTRY_STORAGE_DELETE_ENABLED=true
  24.   networks:
  25.     - registry-net
  26.   restart: always
  27. networks:
  28.   registry-net:
  29.   #driver: default


6、启动容器

docker-compose up -d
1
搭建完成,查看镜像运行情况:docker ps | grep registry 
正常运行的话,接下来就可以愉快的访问你的镜像仓库了,打开浏览器,输入localhost:8080(从其他机器访问该仓库的话,输入ip:port的方式就可以)默认用户名密码是admin/admin 


也可以从后台验证配置是否准确:

docker login localhost:5000
1
输入正确的用户密码会提示: 


如果密码错,则会提示: 


至此,带有访问认证的docker私有仓库搭建完毕,也可参考官网通过docker run的方式, 
链接:https://hub.docker.com/r/hyper/docker-registry-web/

另外需注意,首次向仓库push镜像时会提示权限问题,需要登录web给admin用户分配一下权限。
 

猜你喜欢

转载自blog.csdn.net/ykp92/article/details/83014609