下载registry 镜像
registy为docker官方提供的一个镜像,我们可以用它来创建本地的docker私有仓库。
docker pull registry
cd /opt/
创建一个auth 权限目录
mkdir auth
利用htpasswd将密码加密保存。
docker run --entrypoint htpasswd registry:2 -Bbn liaochao 123456 > auth/htpasswd
完成后检查是否有加密过后的密码
[root@es1 opt]# cat auth/htpasswd
liaochao:$2y$05$rtJOOaNRV7ywpdc7bIzLIOCfOR8UUOv/u5EyOhHqyTCVlDUPBXUFK
创建私有仓库容器
docker run -d -p 5000:5000 --restart=always --name registry1 \
-v `pwd`/auth:/auth \
-e "REGISTRY_AUTH=htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
registry
参数解释:-d 后台启动,-p 端口映射(前面是宿主机,后面是容器端口),–restart=always,跟随容器启动,–name 命名,-v 挂载数据,pwd
代表当前路径,-e 传入参数
登录仓库:
docker login 127.0.0.1:5000
输入账号密码会提示成功,账号密码为刚刚定义的账号密码
Username: liaochao
Password:
Login Succeeded
上传镜像
先标记
docker tag 3600de5aafc6 127.0.0.1:5000/chao/nginx
再上传
docker push 127.0.0.1:5000/chao/nginx
此时docker images,可以看到我们刚刚上传的资源
此时我们可以先登录私有仓库:
docker login 127.0.0.1:5000
#然后可以下载仓库里面的镜像:
docker pull 127.0.0.1:5000/chao/nginx
查看有哪些镜像
curl -u liaochao:123456 127.0.0.1:5000/v2/_catalog
{"repositories":["chao/nginx"]}
如果出现在客户端出现类似:Get https://172.18.3.22:5000/v2/: http: server gave HTTP response to HTTPS client 错误
解决:在客户端加入下面内容
vim /etc/docker/daemon.json
{ "insecure-registries":["192.168.1.40:5000"] }
systemctl daemon-reload
systemctl restart docker