Docker Registry可以用于docker镜像的存储和分发,不同与官方的镜像仓库,可以在公司内部使用,在镜像里封装敏感的数据。
一 环境说明
系统: Centos7
软件: docker-1.8.2
二 下载registry镜像
docker pull registry:2
三 配置启动容器
docker run -d \
--name=registry \ #容器名称
-p 5000:5000 \ #映射端口
--restart=always \ #重启策略
-v /data/storage:/var/lib/registry \ #映射数据存储目录
-e REGISTRY_AUTH=htpasswd \ #设置验证方式
-e REGISTRY_AUTH_HTPASSWD_REALM="Registry Realm"
-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \ #指定htpasswd文件位置
-v /data/build/ssl:/certs \ #映射证书文件所在目录
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \ #设置证书文件位置
-e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \ #设置证书私钥文件位置
registry2
四 生成htpasswd验证文件
例如:设置testuser用户,密码为testpassword
docker exec registry sh -c "mkdir /auth && htpasswd -Bbn testuser testpassword > /auth/htpasswd"
五 上传下载验证
假设:registry服务的域名为hub.example.com
docker tag ubuntu:16.04 hub.example.com:5000/ubuntu:16.04
docker push hub.example.com:5000/ubuntu:16.04 #上传测试
docker pull hub.example.com:5000/ubuntu:16.04 #下载测试