Docker Registry介绍及实现、Harbor介绍及Harbor单机部署使用(小节10)

744 阅读2分钟

实验一:Docker 仓库之单机 Docker Registry

102

下载Docker Registry镜像

~# docker pull registry

搭建单机仓库

#创建目录
~# mkdir /docker/auth -pv
~# cd /docker/

1.创建用户并生成密码
docker run --entrypoint htpasswd registry -Bbn jack 123546 > auth/htpasswd 
上述有报错,新版本docker已不支持,改为:
docker run --entrypoint htpasswd httpd:2  -Bbn jack 123456 > auth/htpasswd
2.验证密码信息
cat auth/htpasswd
jack:$2y$05$amX9iLagtwli3Bfuaq4LIegVSM6d7OkrbgpXdP.Q3/Qyquwdukaku

3.启动registry
docker run -d -p 5000:5000 --name registryl \
-v /docker/auth:/auth \
-e "REGISTRY_AUTH=htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd registry

101

更改配置文件

#结尾添加"非安全的 IP地址\域名" 
vim /lib/systemd/system/docker.service
...
[Service]
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry 192.168.37.102:5000
...

从新加载docker

systemctl daemon-reload
systemctl restart docker

登录后、可上传镜像或下载镜像

docker login 192.168.37.102:5000
Username: jack    
Password:     密码:123456
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 images
#打包镜像
docker tag haproxy:2.0.30-centos 192.168.37.102:5000/linux00/haproxy:2.0.30-centos

#上传镜像
docker push 192.168.37.102:5000/linux00/haproxy:2.0.30-centos

#下载镜像
docker pull 192.168.37.102:5000/linux00/haproxy:2.0.30-centos

docker仓库之分布式 Harbor

Harbor 是一个用户存储和分发 Docker 镜像的企业级 Registry 服务器,由vmware 开源,其通过添加一些企业必须的功能特性,例如安全、标识和管理等,扩展了开源 Docker Distribution。作为一个企业私有 Registry 服务器,Harbor 提供了更换的性能和安全。提升用户使用 Registry 构建和运行环境传输镜像的效率。Harbor 支持安装在多个 Registry 节点的镜像资源复制,镜像全部保存在私有 Registry 中,确保数据和知识产权在公司内部网络中管控,另外,Harbor 也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。

官方地址:vmware.github.io/harbor/cn/

官方github地址:github.com/vmware/harb…

harbor 官方地址:github.io/

图片.png

Harbor

基于角色的访问控制:用户与 Docker 镜像仓库通过“项目”进行组织管理,一个用户可以对多个镜像仓库在同一命名空间(project)里有不同的权限。

镜像复制:镜像可以在多个 Registry 实例中复制(同步)。尤其适用于负载均衡,高可用,混合云和多云的场景。

图形化用户界面:用户可以通过浏览器来浏览,检索当前 Docker 镜像仓库,管理项目和命名空间。

AD/LADP支: Harbor 可以集成企业内部已有的 AD/LADP,用于鉴权认证管理。

审计管理: 所有针对镜像仓库的操作都可以被记录追溯,用于审计管理。

国际化: 已用于英文、中文、德文、日文和俄文的本地化版本。更多的语言将会添加进来。

RESTful API-RESTful API: 提供给管理员用于对 Harbor 更多的操控,使得与其它管理软件集成变得更容易。

部署简单: 提供在线和离线两种安装工具,也可以安装到 vSphere 平台(OVA 方式)虚拟设备。

实验二:Harbor介绍及Harbor单机部署使用

103

步骤:
1. 安装docker
2. 安装docker-compose
3. 部署Harbor
4. 配置lib/systemd/system/docker.service
   └─  --insecure-registry image.harbor.com
5. 重启Docker服务
6. 登录

安装Docker脚本

vim docker-install.sh

#!/bin/bash
# step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2: 安装GPG证书
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# Step 3: 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# Step 4: 更新并安装Docker-CE
sudo apt-get -y update

# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# apt-cache madison docker-ce

#安装docker
apt install docker-ce-cli=5:19.03.9~3-0~ubuntu-bionic docker-ce=5:19.03.9~3-0~ubuntu-bionic -y

软件包:harbor-offline-installer或到github.com/goharbor/ha…

cd /usr/local/src/

#解压缩
tar xvf harbor-offline-installer-v1.10.15.tgz

cd harbor/

修改文件

vim harbor.yml
...
hostname: image.harbor.com   <--

#注释掉
#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
...

修改本机hosts文件

图片.png

#此时会报错
./install.sh
apt install -y python3-pip
pip3 install --upgrade pip
pip3 install docker-compose

仓库docker-compose版本

docker-compose --version
./install.sh

浏览器访问192.168.37.103或image.harbor.com

图片.png

创建目录

图片.png

101

vim /lib/systemd/system/docker.service
...
#修改信息
[Service]
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry 192.168.37.102:5000 --insecure-registry image.harbor.com
...
systemctl daemon-reload
systemctl restart docker
#添加域名解析
vim /etc/hosts

192.168.37.103 image.harbor.com

登录

docker login image.harbor.com
Username: admin   账号:admin
Password:         密码:Harbor12345
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

101

上传镜像

docker tag nginx:1.18.0-alpine image.harbor.com/linux00/nginx:1.18.0-alpine

docker push image.harbor.com/linux00/nginx:1.18.0-alpine

图片.png

104

  1. 修改hosts文件、添加域名解析
vim /etc/hosts
192.168.37.103 image.harbor.com   <--
  1. 修改配置文件(非安全镜像仓库)
vim /lib/systemd/system/docker.service
...
[Service]
Type=notify
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry 192.168.37.102:5000 --insecure-registry image.harbor.com
...
  1. 重启服务
systemctl daemon-reload && systemctl restart docker
  1. 拉取镜像(不需要登录账号密码)
docker pull image.harbor.com/linux00/nginx:1.18.0-alpine
docker images
REPOSITORY                       TAG             IMAGE ID       CREATED        SIZE
image.harbor.com/linux00/nginx   1.18.0-alpine   408efcdec3b3   32 hours ago   245MB