Docker-----私有仓库和Hub仓库
Posted S4061222
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker-----私有仓库和Hub仓库相关的知识,希望对你有一定的参考价值。
前言
有私有和共有仓库,仓库本质:存放景象,认证+景象层的数据类
私有仓库
一.本地私有仓库的搭建
真机开启地址伪装功能,虚拟机的网关加入真机ip,虚拟机可以上网
启动本地私有仓库,-v表示本地 /opt/ 映射容器中的 /var/lib ,-p:端口映射当前su主机(server1)的5000映射为容器内的5000
查看容器是否运行:docker ps
查看本地映射的仓库路径
查看端口5000是否打开
将容器中的game2048镜像标记到本地仓库中
上传镜像到本地私有仓库,传成功后本地指定的路径 /opt/registry 中也产生了文件
删除之后,重新加载,之前的内容依然存在
1.本地私有仓库的加密
创建目录,保存认证和钥匙, 生成密钥
openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/westos.org.key -x509 -days 365 -out certs/westos.org.crt
解析 reg.westos.org
拉起容器, 查看容器是否启动
docker run -d --name registry -v /opt/registry:/var/lib/registry -p 443:443 -v "$(pwd)"/certs:/certs -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 registry
查看容器网络端口映射
标记重命名nginx并归类到本地 reg.westos.org 仓库中
推行上传, 报错原因:读取不到认证文件
将认证移动到指定目录
推行上传到本地的私有仓库成功
测试:查看上传的内容
2.本地私有仓库的加密和认证
创建认证目录
安装生成认证的软件httpd-tools
查看用法
为admin用户和jiaojiao用户添加认证信息和密码
查看已经生成的认证
删除之前的仓库信息, 重新拉起仓库容器
docker run -d --name registry -v /opt/registry:/var/lib/registry -p 443:443 -v "$(pwd)"/certs:/certs -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 -v "$(pwd)"/auth:/auth -e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd registry
查看容器是否运行启, 查看日志:启动无异常
注意:仓库认证完成后,上传和下载前需要登陆,login
查看认证信息, 退出后,认证信息消失
server2:远程拉取server1本地仓库的内容
安装docker,重启服务,修改本地解析
warning的解决方法:
[root@server2 ~]# vim /etc/sysctl.d/docker.conf
[root@server2 ~]# sysctl --system
[root@server2 ~]# scp server1:/etc/yum.repos.d/docker.repo /etc/yum.repos.d/
root@server1's password:
docker.repo 100% 75 198.5KB/s 00:00
[root@server2 ~]# cat /etc/yum.repos.d/docker.repo
[docker]
name=doccker-ce
baseurl=http://172.25.28.250/docker-ce
gpgcheck=0
[root@server2 ~]# yum install -y docker-ce
[root@server2 ~]# systemctl enable --now docker
将server1的认证信息传给server2
server1上传镜像
使用login,pull和push ,不然会报错显示未认证
serve2 拉取镜像
可以看到server2拉取的镜像
二.Hub仓库
1.搭建Hub仓库
docker-compose : 主要用于在单机层面如何管控多个服务器
解压harbor-offline压缩包
修改harbor配置文件
下载 docker-compose-Linux-x86 _64-1.27.0,file docker-compose-Linux-x86 _64-1.27.0
查看
docker-compose-Linux-x86 _64-1.27.0复制到 /usr/local/bin/docker-compose,增加执行权限,docker-compose
查看命令参数
将server1的认证信息移动到/data/(中, 使用脚本安装并启动harbor
data目录install后自动生成
安装启动成功提示
docker-compose 命令:
docker-compose ps
docker-compose start
docker-compose logs
修改解析文件
测试:
firefox :reg.westos.org
镜像查看
端口查看
上传镜像到library项目中
可以在网页中查看日志并且在library中找到项目
添加默认仓库路径
docker info 可以查看到新的添加
server2 下载nginx 会发现从library项目中拉取nginx镜像
网页查看下载日志:
删除后可以直接run 拉取仓库的nginx
curl测试:
项目维护人员对项目进行管理,首先web添加项目westos和项目维护人员jiaojiao
添加用户jiaojiao
添加用户到westos项目成员
添加镜像到westos项目中
以jiaojiao的用户登陆,拉取镜像, 查看日志
2.Hub仓库的扫描
配置管理中选择自动扫描镜像,上传镜像
可以看到镜像已经扫描过
3.Hub仓库的签名
实验说明:
配置管理中选择内容信任和漏洞扫描:
原因:配置管理中选择内容信任,但未签名
以上是关于Docker-----私有仓库和Hub仓库的主要内容,如果未能解决你的问题,请参考以下文章