Loading

容器技术:Harbor镜像仓库部署(七)

镜像仓库-Harbor

1. 安装Docker、Docker-Compose

Harbor的所有服务组件都是在Docker中部署的,所以官方安装使用Docker-compose快速部署,所以我们需要安装Docker、Docker-compose。由于Harbor是基于Docker Registry V2版本,所以就要求Docker版本不小于1.10.0,Docker-compose版本不小于1.6.0。


安装一些依赖

yum install -y yum-utils device-mapper-persistent-data lvm2

也可以安装一下代码补全插件:yum install -y bash-completion bash-completion-extras


下载 repo 文件,并把软件仓库地址替换为镜像站

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sed -i 's+https://download.docker.com+https://mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo

安装docker-ce

yum install docker-ce

安装指定版本的Docker-CE

#查找Docker-CE的版本
yum list docker-ce.x86_64 --showduplicates | sort -r
Loading mirror speeds from cached hostfile
Loaded plugins: fastestmirror, langpacks
docker-ce.x86_64            3:23.0.3-1.el7                      docker-ce-stable
docker-ce.x86_64            3:20.10.0-3.el7                     docker-ce-stable
docker-ce.x86_64            18.06.3.ce-3.el7                    docker-ce-stable

#例如安装18.06.3.ce-3.el7这个版本
yum -y install docker-ce-18.06.3.ce-3.el7

配置镜像加速,编辑配置文件。

mkdir /etc/docker/
cat > /etc/docker/daemon.json << EOF
{
   "registry-mirrors": [
   "https://k313isum.mirror.aliyuncs.com"
  ]
}
EOF

启动docker并设置开机自启

systemctl daemon-reload
systemctl start docker
systemctl enable docker

配置内核转发功能

临时性:
 echo 1 > /proc/sys/net/ipv4/ip_forward
永久性:
 vim /etc/sysctl.conf
  net.ipv4.ip_forward = 1
  
 #立即生效
 sysctl -p

在安装 Docker Compose 之前,请确保你的机器已经正确运行了 Docker,一般安装docker时就会把docker compose一起安装了,如果执行docker-compose -v没有出现信息,则需要下载。

可在github上下载最新版本 https://github.com/docker/compose/releases


下面以下载v2.17.2为例

#从github上下载
wget https://github.com/docker/compose/releases/download/v2.17.2/docker-compose-linux-x86_64

#赋予执行权限
chmod +x docker-compose-linux-x86_64

#有则覆盖
mv docker-compose-linux-x86_64 /usr/bin/docker-compose

#检查docker-compose的版本的信息,当我们执行完下面命令后,如果 Docker Compose 输出了当前版本号,就表示我们的 Docker Compose 已经安装成功。
docker-compose -v

2. 下载并配置Harbor

下载地址:https://github.com/goharbor/harbor/releases ,本次以v2.3.1版本为例,先下载harbor-offline-installer-v2.3.1.tgz到主机上。

#创建目录
mkdir /soft
#解压软件包
tar xf harbor-offline-installer-v2.3.1.tgz -C /soft/
#进入harbor目录
cd /soft/harbor

修改配置文件内容如下,主要是配置hostsname、http和harbor_admin_password,其他保持默认即可。

  • 检测80端口是否被占用:netstat -tunlp|grep 80,若使用其它端口,需修改端口号。
# egrep -v '#|^$' harbor.yml
hostname: 10.0.0.190
http:
  port: 80
harbor_admin_password: 123456
database:
  password: root123
  max_idle_conns: 100
  max_open_conns: 900
data_volume: /data
trivy:
  ignore_unfixed: false
  skip_update: false
  insecure: false
jobservice:
  max_job_workers: 10
notification:
  webhook_job_max_retry: 10
chart:
  absolute_url: disabled
log:
  level: info
  local:
    rotate_count: 50
    rotate_size: 200M
    location: /var/log/harbor
_version: 2.3.0
proxy:
  http_proxy:
  https_proxy:
  no_proxy:
  components:
    - core
    - jobservice
    - trivy

在harbor目录下进行安装

./install.sh

安装成功后,在浏览器上访问10.0.0.190即可访问到harbor。账号admin、密码为上面配置所配置的密码。

image-20230812161920645

image-20230812162019115


配置开机自启动文件

cat > /usr/lib/systemd/system/harbor.service <<EOF
[Unit]
Description=Harbor
After=docker.service systemd-networkd.service systemd-resolved.service
Requires=docker.service
Documentation=http://github.com/vmware/harbor

[Service]
Type=simple
Restart=on-failure
RestartSec=5
#注意docker-compose和harbor的安装位置
ExecStart=/usr/bin/docker-compose -f  /soft/harbor/docker-compose.yml up
ExecStop=/usr/bin/docker-compose -f /soft/harbor/docker-compose.yml down

[Install]
WantedBy=multi-user.target
EOF

加载Systemd配置,并设置开机自启动。

#手动停止
/usr/bin/docker-compose -f /soft/harbor/docker-compose.yml down

#加载配置和设置开机自启
systemctl daemon-reload
systemctl enable harbor.service

#启动Harbor
systemctl start harbor.service

3. 推送镜像到Harbor

添加一个用户,创建一个yinjay项目,并把该用户添加到该项目中。

image-20230812201220699


在docker01主机上进行拉取官方镜像,然后推送到Harbor本地仓库中。

#拉取官方镜像
docker pull nginx:1.15.2

#查看镜像
# docker images | grep nginx
nginx               1.15.2              c82521676580        5 years ago         109MB

默认推送是https,通过配置 insecure-registries,可以告诉 Docker 某个仓库是不安全的,并允许 Docker 客户端与之进行通信,即便仓库使用的是不受信任的证书。(默认为80,不加端口)

# cat /etc/docker/daemon.json
{
   "registry-mirrors": [
   "https://k313isum.mirror.aliyuncs.com"
  ],
   "insecure-registries": ["10.0.0.190"] 
}

systemctl restart docker

进行docker login,才能有权限进行推送。

#格式:docker login Harbor地址 -u Harbor用户 -p Harbor用户密码
docker login 10.0.0.190 -u YinJay -p Huawei@123

对镜像进行打上tag,并推送。

#打tag格式:docekr tag 镜像名称:标签 你的IP(域名):端口/项目名称/镜像名称:标签 
docker tag nginx:1.15.2 10.0.0.190/yinjay/nginx:1.15.2

#推送镜像格式:docker push 你的IP(域名):端口/项目名称/镜像名称:标签
docker push 10.0.0.190/nginx/nginx:1.15.2

image-20230812201657971

image-20230812201745370


拉取镜像

#拉取镜像格式:docker pull 你的IP(域名):端口/项目名称/镜像名称:标签
docker pull 10.0.0.190/nginx/nginx:1.15.2

image-20230812202716170


posted @ 2023-09-16 13:40  YinJayChen  阅读(80)  评论(0编辑  收藏  举报