1. 下载仓库镜像 ( 从中央仓库拉取最新的 registry 仓库)
1 |
docker pull registry |
2. 创建仓库文件夹 ( 存储本地镜像)
1 |
mkdir -pv /opt/docker/registry |
3.启动镜像
1 |
docker run -d -p 5000:5000 -v /opt/docker/registry:/var/lib/registry --restart=always --name registry registry |
4.从公有仓库拉取一个镜像下来,然后push到私有仓库中进行测试,当前用nginx镜像做测试
1 2 3 |
docker pull nginx docker images |
5.给docker注册https协议,支持https访问
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
如果daemon文件不存在,vim会自己创建一个,代码如下 { "live-restore": true, "registry-mirrors": ["https://***.mirror.aliyuncs.com"], "insecure-registries" : ["192.168.6.123:5000"], } 注: insecure-registries----->开放注册https协议(字面意思为不安全的仓库,通过添加这个参数对非https仓库进行授信,可以设置多个insecure-registries地址,以数组形式书写,地址不能添加协议头(http)) registry-mirrors----->仓库源 live-restore ----->当docker daemon停止时, 会关闭运行中的容器。 从 docker engine 1.12 开始, 你可以调整daemon参数,使daemon服务不可用的时候,容器依旧保持运行状态。 |
6.新建一个tag,把nginx名称变成域名或者IP/镜像名称
1 |
docker tag [镜像id] 192.168.6.123:5000/nginx |
7. 推送到本地仓库
1 |
docker push 192.168.6.123:5000/nginx |
8.删除刚刚打的tag镜像和开头从公共库拉取的 nginx镜像,拉取自己本地仓库的镜像
1 2 |
docker rmi 192.168.6.123:5000/nginx docker rmi nginx |
9.拉取本地镜像
10.在其他机器同样配置下daemon文件
1 2 3 4 |
{ "live-restore": true, "insecure-registries":["192.168.6.123:5000"] } |
这样其他机器就能拉仓库机器的镜像了
################本地仓库ssl加密################
1.制作ssl证书
1 2 |
cd /etc/pki/tls/certs openssl genrsa -des3 -out server.key 2048 #生成私钥(回车输入一个密码 2次输入密码一致即可) |
1 |
openssl req -new -key server.key -out server.csr #创建证书请求 |
1 |
cp server.key server.key.org #备份私钥 |
2.从生成server.key中清除刚才输入的密码保护
1 |
openssl rsa -in server.key -out server.key #密码为上一步输入的密码 |
3.签名
1 |
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt |
5.拷贝证书
1 |
cp -a /etc/pki/tls/certs/server* /etc/docker/certs.d/[没有这个目录可自行创建] |
6.到此仓库的秘钥生成完成,可以测试启动
1 2 3 4 5 6 |
docker run -d -p 5000:5000 --restart=always --name registry \ -v /var/lib/registry:/var/lib/registry \ -v /etc/docker/certs.d:/certs \ -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/server.crt \ -e REGISTRY_HTTP_TLS_KEY=/certs/server.key \ registry |
7.查看启动后的容器
1 |
docker ps |
8.设置docker login登录的用户名密码
1.安装加密工具
1 |
yum -y install httpd-tools |
2.设置登录用户名和密码
1 |
htpasswd -Bc /etc/docker/.htpasswd admin |
3.启动容器
1 2 3 4 5 6 7 8 9 10 |
docker run -d -p 5000:5000 --restart=always --name registry \ -v /var/lib/registry:/var/lib/registry \ -v /etc/docker/certs.d:/certs \ -v /etc/docker:/auth \ -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/server.crt \ -e REGISTRY_HTTP_TLS_KEY=/certs/server.key \ -e REGISTRY_AUTH=htpasswd \ -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/.htpasswd \ -e REGISTRY_AUTH_HTPASSWD_REALM="Registry Realm" \ registry |
4.登录本地仓库
1 |
docker login www.shooter.com:5000 |
- 本文固定链接: https://www.yoyoask.com/?p=806
- 转载请注明: shooter 于 SHOOTER 发表