433243 发表于 2016-10-20 09:13:46

docker私有仓库(认证功能)

搭建docker私有仓库,带认证功能,记录如下:

1.创建对应的目录

1
mkdir -p /data/registry/ && cd /data/registry/ && mkdir auth certs




2.创建密码文件

1
2
cd /data/registry/
docker run --entrypoint htpasswd daocloud.io/registry:2.2 -Bbn ttxsgoto ttxsgoto > auth/htpasswd




3.生成签名证书

1
openssl req -x509 -days 3650 -subj '/CN=ttxsgoto.com/' -nodes -newkey rsa:2048 -keyout certs/registry.key -out certs/registry.crt;




4.启动,脚本存放在 /data/registry/下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/bin/bash

dir=$(cd `dirname $0`;pwd)
docker stop registry && docker rm registry
docker run -d -p 443:5000 --restart=always \
--name registry \
-v $dir/auth:/auth \
-e "REGISTRY_AUTH=htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry on ttxsgoto.com" \
-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
-v $dir/certs:/certs \
-v $dir/data:/var/lib/registry \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/registry.crt \
-e REGISTRY_HTTP_TLS_KEY=/certs/registry.key \
daocloud.io/registry:2.2




5.创建存放证书目录

1
mkdir -p /etc/docker/certs.d/ttxsgoto.com    #将生成的证书registry.crt存放在该目录下




6.在/etc/hosts中做域名解析,如果为dns解析无需此步骤

1
192.168.229.133 ttxsgoto.com




7.登录验证

1
2
3
docker login ttxsgoto.com   #然后输入刚才的用户名和密码就可以登录,之后就可以push/pull了。
docker logout ttxsgoto.com   #注销登录
说明:登录成功后会把登录信息存放到/root/.docker/config.json文件中






页: [1]
查看完整版本: docker私有仓库(认证功能)