您的位置:首页 > 运维架构 > Docker

Docker搭建带有访问认证的私有仓库

2017-06-10 17:30 806 查看
以下步骤均为本人亲自踩坑,历经数次失败,最终搭建成功

一、环境信息:

操作系统:CentOS 7

Docker版本:1.12.5 (更高版本应该类似)

registry:2.4.1

registry-web: hyper/docker-registry-web:latest

二、搭建步骤:

1、拉取镜像registry(仓库)和registry-web(用于访问仓库的UI界面):

docker pull hyper/docker-registry-web
docker pull registry:2.4.1


2、下载docker-compose(一种简化复杂容器应用的利器,具体使用可参见官网)

官网下载链接:https://docs.docker.com/compose/install/

懒人可以直接使用下面的命令即可下载

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的权限:

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


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

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


4、生成证书

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


5、创建yml配置文件

###创建仓库的配置文件

vim /data/registry_dir/conf/registry/config.yml

version: 0.1

storage:
filesystem:
rootdirectory: /var/lib/registry

http:
addr: 0.0.0.0:5000

auth:
token:
realm: http://localhost:8080/api/auth service: localhost:5000
issuer: 'admin'
rootcertbundle: /etc/docker/registry/auth.cert


###创建仓库UI的配置文件

vim /data/registry_dir/conf/registry-web/config.yml

registry:
url: http://registry-srv:5000/v2 name: localhost:5000
readonly: false
auth:
enabled: true
issuer: 'admin'
key: /conf/auth.key


###创建docker-compose启动配置文件

vim /data/registry_dir/docker-compose.yml

version: '2'
services:
registry-web:
image: hyper/docker-registry-web:latest
ports:
- 8080:8080
volumes:
- /data/registry_dir/conf/registry-web:/conf:ro
- /data/registry_dir/db:/data
networks:
- registry-net
depends_on:
- registry
restart: always
registry:
image: registry:2.4.1
ports:
- 5000:5000
volumes:
- /data/registry_dir/conf/registry:/etc/docker/registry:ro
- /data/registry_dir/registry:/var/lib/registry
environment:
- REGISTRY_STORAGE_DELETE_ENABLED=true
networks:
- registry-net
restart: always
networks:
registry-net:
#driver: default


6、启动容器

docker-compose up -d


搭建完成,查看镜像运行情况:docker ps | grep registry

正常运行的话,接下来就可以愉快的访问你的镜像仓库了,打开浏览器,输入localhost:8080(从其他机器访问该仓库的话,输入ip:port的方式就可以)默认用户名密码是admin/admin



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

docker login localhost:5000


输入正确的用户密码会提示:



如果密码错,则会提示:



至此,带有访问认证的docker私有仓库搭建完毕,也可参考官网通过docker run的方式,

链接:https://hub.docker.com/r/hyper/docker-registry-web/

另外需注意,首次向仓库push镜像时会提示权限问题,需要登录web给admin用户分配一下权限。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  docker-私有仓库