公共仓库
Docker Hub
docker hub 是docker公司维护的公共仓库,用户可以免费使用,也可以购买私有仓库。
在https://hub.docker.com/登陆创建仓库
登陆认证
用户认证信息存放在以下文件中
上传:
下载:
先把上传到仓库的镜像删除
再看是否能完成下载
Registry 工作原理
搭建私有仓库
直接拉取官方的registry
docker pull registry
5000端口可以访问私有仓库
上传:
下载:
数据被存到此文件然后做压缩
内网访问非安全仓库,走非加密拉取私有仓库文件
在server2上
安装docker
{
"insecure-registries" : ["reg.westos.org:5000"]
}
添加解析
生效
systemctl daemon-reload
systemctl restart docker
从server1上拉取
加密
sevrer1上:
mkdir -p certs /root/certs
openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/westos.org.key -x509 -days 365 -out certs/westos.org.crt
制作证书
解析
删除上面创建的私有仓库
重新创建加密仓库
docker run -d --name registry -v "$(pwd)"/certs:/certs -v /opt/registry:/var/lib/registry -e REGISTRY_HTTP_ADDR=0.0.0.0:443 -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/westos.org.crt -e REGISTRY_HTTP_TLS_KEY=/certs/westos.org.key -p 443:443 registry
证书要签名
上传:
docker tag ubuntu:latest reg.westos.org/ubuntu
docker push reg.westos.org/ubuntu
客户端拉取:
将证书发送到server2
认证
生成用户认证
生成容器
docker run -d --name registry -v "$(pwd)"/certs:/certs -v "$(pwd)"/auth:/auth -e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd -v /opt/registry:/var/lib/registry -e REGISTRY_HTTP_ADDR=0.0.0.0:443 -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/westos.org.crt -e REGISTRY_HTTP_TLS_KEY=/certs/westos.org.key -p 443:443 registry
docker logs xxxxx 查看日志
上传:
拉取: