马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
堆栈(Repository)是会合存放镜像的地方,又分公共堆栈和私有堆栈。
偶然间轻易把堆栈与注册服务器(Registry)肴杂。 实际上注册服务器是存放堆栈的详细服务器, 一个注册服务器上可以有多个堆栈,而每个堆栈下面可以有多个镜像。 从这方面 来说,堆栈可以被以为是一个详细的项目或目次。 比方对于堆栈地点private-docker.com/ubuntu来说, private-docker.com 是注册服务器地点, ubuntu 是堆栈名。
1. 什么是Docker私有堆栈
Docker私有堆栈是用于存储和管理Docker镜像的私有存储库。Docker默认会有一个公共的堆栈Docker Hub,而与Docker Hub差别,私有堆栈是受限访问的,只有授权用户才可以大概上传、下载和管理此中的镜像。这种私有堆栈可以摆设在当地云环境中,用于构造内部开辟、测试和生产环境中的容器镜像管理。包管数据安全性。
2. Docker有哪些私有堆栈
以下是一些常见的Docker私有堆栈:
- Harbor:作为一个企业级的Docker Registry服务,Harbor提供了安全、可信任的镜像存储和管理功能。它支持RBAC权限控制、镜像复制、镜像署名、毛病扫描等功能。
- Docker Trusted Registry (DTR):由Docker官方推出的企业级Docker私有堆栈服务,与Docker Engine紧麋集成,支持高度的安全性和可靠性。
- Portus:一个开源的Docker镜像管理和认证服务,提供用户管理、团队管理、镜像考核等功能,与Docker Registry兼容。
- Nexus Repository Manager:固然重要是用于构建和管理Java组件,但也可以用作Docker私有堆栈。它具有强盛的存储管理和权限控制功能。
- GitLab Container Registry:GitLab集成了容器注册表功能,允许您存储、管理和分发Docker镜像。这是GitLab自带的功能,无需额外摆设。
- AWS Elastic Container Registry (ECR):假如利用AWS云服务,可以思量利用AWS ECR作为私有堆栈。它与AWS的其他服务集成精密,对AWS用户来说是一个方便的选择。
本篇利用Harbor搭建Docker私有堆栈。
3. Harbor简介
Harbor是一个开源的企业级Docker Registry服务,它提供了一个安全、可信任的堆栈来存储和管理Docker镜像。Harbor翻译为中文名称为"保护;居住;"。可以明白为是Docker镜像的"居住环境"大概是镜像的"保护所"。Harbor最初由VMware公司开辟,旨在办理企业级Docker镜像管理的安全和可信托性题目。VMware于2016年发布,在2017年,VMware将Harbor开源,这使得更广泛的社区和构造可以自由地利用和贡献代码。Harbor是一个成熟、功能丰富且安全可靠的企业级Docker Registry服务,为企业容器化应用的摆设和管理提供了强盛的支持。
Harbor官网地点:Harbor (goharbor.io)
Github开源地点:GitHub - goharbor/harbor: An open source trusted cloud native registry project that stores, signs, and scans content.
4. Harbor和docker下载
4.1 添加docker添加软件源信息
- yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
复制代码 4.2 下载docker及其插件
docker-ce
4.3 下载 harbor 离线包
- wget -c https://github.com/goharbor/harbor/releases/download/v2.12.2/harbor-offline-installer-v2.12.2.tgz
复制代码 4.4 解压
解压文件
- tar xf harbor-offline-installer-v2.8.4.tgz -C /usr/local/
复制代码 5. 启动Harbor
5.1 修改设置文件
复制harbor.yml.tmpl 文件并重定名为harbor.yml修改此设置文件,必要设置hostname、端口、数据库暗码等。
- cd /usr/local/harbor/
- cp harbor.yml.tmpl harbor.yml #拷贝
- vim harbor.yml
复制代码 修改设置文件:
- #修改hostname的值,如果没有域名就使用本机IP地址
- hostname: reg.yym.com
- #配置启动端口号
- # http related config
- http:
- # port for http, default is 80. If https enabled, this port will redirect to https port
- port: 80
- # 如果没有申请证书,需要隐藏https
- #https:
- # https port for harbor, default is 443
- # port: 443
- # The path of cert and key files for nginx
- # certificate: /your/certificate/path
- # private_key: /your/private/key/path
- #启动成功后,admin用户登录密码
- # Remember Change the admin password from UI after launching Harbor.
- harbor_admin_password: Harbor12345
复制代码
5.2 启动
设置文件修改乐成后,实行 install.sh 脚本举行安装harbor
提示安装乐成。接下来就可以访问Harbor了。访问IP+端口:
http://192.168.121.160:80
访问乐成,由于Harbor是通过docker管理的,以是启动非常方便。假如首页访问乐成分析Docker私有堆栈已经摆设乐成了。
6.Harbor Web页面操纵分析
默认用户名是admin,暗码是启动时设置的暗码:Harbor12345
登录乐成进入主页面了。从体系首页可以看到体系分为三个菜单:项目、日志 、体系管理。
6.1 项目
项目管理顾名思义就是用来管理项目的。可以为每一个开辟项目创建一个私有项目库,然后把Docker镜像存储到指定的项目中,为每个项目实现项目镜像隔离。创建项目的时间,Harbor提供了公开库(public repository)和私有库(private repository)两种范例的镜像存储空间。
通过详情信息可以看到:公开库中的镜像是对全部用户可见和可访问的,任何人都可以检察和拉取此中的镜像。而私有库中的镜像则必要登录才气访问控制,只有被授权的用户或团队才可以大概检察、拉取和推送镜像。 可以根据必要创建干系的项目。
项目创建乐成后,可以点击进入项目。在内里可以为每个项目单独设置差别的设置信息。可以为每一个项目添加成员信息。
脚色权限分析:
- 项目管理员(Project Administrator):拥有项目的最高权限,可以对项目举行全面管理,包罗创建和删除项目、管理项目成员和权限、设置项目属性、检察项目日志
等。
- 维护职员(Maintainer):类似于项目管理员,但权限稍低,通常用于帮忙管理项目,可以举行项目的部门管理操纵,如添加和删除镜像、设置镜像的复制和同步规则等。
- 开辟者(Developer):具有对项目中镜像堆栈的读写权限,可以拉取、推送和删除镜像,以及管理部门项目设置,但不能举行项目管理操纵。
- 访客(Guest):只具有对项目中镜像堆栈的只读权限,可以检察镜像和元数据,但无法对镜像举行修改或删除操纵。通常用于分享项目或镜像给外部团队或用户。
- 受限访客(Restricted Guest):是一种更加受限的访客脚色,通常用于提供给外部用户或体系,具有对项目中镜像堆栈的只读权限,但大概会限定访问的部门内容或功能。
在右上角体现推送下令,可以通过提示下令举行docker镜像推送。
6.2 日志
日志菜单就是记任命户操纵日志信息的。
6.3 体系管理
体系管理重要用来管理Harbor用户职员信息、镜像堆栈的各种设置、权限和体系设置。
7.Docker下令利用私有堆栈
7.1 登录
起首登录私有堆栈地点:
- [root@open-Euler1 docker]# docker login -u admin -p Harbor12345 reg.yym.com
- WARNING! Using --password via the CLI is insecure. Use --password-stdin.
- WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
- Configure a credential helper to remove this warning. See
- https://docs.docker.com/engine/reference/commandline/login/#credentials-store
- Login Succeeded
复制代码 会报错:
- [root@open-Euler1 docker]# docker login -u admin -p Harbor12345 reg.yym.com
- WARNING! Using --password via the CLI is insecure. Use --password-stdin.
- Error response from daemon: Get "https://reg.yym.com/v2/": dial tcp 192.168.121.160:443: connect: connection refused
复制代码 docker以为这个地点是不安全的,以是必要在docker保卫历程设置文件中把该地点参加安全范围。
- [root@open-Euler1 docker]# cat /etc/docker/daemon.json
- {
- "insecure-registries": ["reg.yym.com"],
- "registry-mirrors": [
- "https://docker.m.daocloud.io",
- "https://hub-mirror.c.163.com",
- "https://mirror.baidubce.com",
- "https://docker.nju.edu.cn"
- ]
- }
复制代码 参加设置乐成后,再次登录。
- [root@open-Euler1 docker]# docker login -u admin -p Harbor12345 reg.yym.com
- WARNING! Using --password via the CLI is insecure. Use --password-stdin.
- WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
- Configure a credential helper to remove this warning. See
- https://docs.docker.com/engine/reference/commandline/login/#credentials-store
- Login Succeeded
复制代码 通过输出发现登录乐成。认证信息存储在 ~/.docker/config.json 文件中,只要登录信息存在,登录会不停见效不必要每次推送拉取之前都登录。
7.2 推送
重新定名镜像名称
- [root@open-Euler1 docker]# docker tag busybox:latest reg.yym.com/library/busybox:latest
- [root@open-Euler1 docker]# docker images
- REPOSITORY TAG IMAGE ID CREATED SIZE
- wordpress latest 458dad822ff7 3 weeks ago 701MB
- nginx latest b52e0b094bc0 4 weeks ago 192MB
- busybox latest 31311c5853a2 5 months ago 4.27MB
- reg.yym.com/library/busybox latest 31311c5853a2 5 months ago 4.27MB
- myubuntu 18.04 f9a80a55f492 21 months ago 63.2MB
- ubuntu 18.04 f9a80a55f492 21 months ago 63.2MB
- mysql 5.6 dd3b2a5dcb48 3 years ago 303MB
复制代码 推送
- [root@open-Euler1 docker]# docker push reg.yym.com/library/busybox:latest
- The push refers to repository [reg.yym.com/library/busybox]
- 59654b79daad: Pushed
- latest: digest: sha256:0f17f65e7a050f35355941bcb375b63867827dd1ab7eb2c949730c195cf0bc25 size: 527
复制代码 检察Harbor堆栈,推送乐成。 (下载数开始为0,为1是由于我测试拉了一次)
7.3 拉取
通过另一台服务器,利用 docker pull 拉取镜像从私有堆栈拉取镜像:
- [root@open-Euler2 ~]# docker pull reg.yym.com/library/busybox
- Using default tag: latest
- latest: Pulling from library/busybox
- Digest: sha256:0f17f65e7a050f35355941bcb375b63867827dd1ab7eb2c949730c195cf0bc25
- Status: Image is up to date for reg.yym.com/library/busybox:latest
- reg.yym.com/library/busybox:latest
复制代码 拉取乐成
检察web界面下载数,发现已经更新了。
|