无需网络,也能部署Harbor?离线安装攻略来了!

在当今云计算时代,容器化技术正逐渐成为软件开发和部署的主流方式。而Harbor作为一个开源的企业级Docker Registry管理工具,为用户提供了安全、可信赖的容器镜像存储和管理解决方案。然而,有时候我们面临的环境可能并不总是能够直接连接互联网,这时如何在离线环境下部署Harbor成了一个挑战。不过,别担心!本文将为您介绍如何在无网络环境下成功部署Harbor,让您的容器化之路更加顺畅。

离线部署docker

在部署Harbor之前,我们需要提前安装好docker环境,由于本环境模拟的是无法链接互联网,所以,安装docker的方式也是采用离线部署的方式。

我这里以下载「docker-18.06.3-ce的版本」为例,docker离线包[1]

解压文件

把下载的压缩包解压到指定的目录下,解压出来的文件全部都是二进制文件。执行如下命令进行解压操作:

tar  -zxvf docker-18.06.3-ce.tgz -C /usr/bin

将docker注册为service

进入/etc/systemd/system/目录,并创建docker.service文件,并把下面的的内容复制到docker.service文件中。

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target

[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd --selinux-enabled=false
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s

[Install]
WantedBy=multi-user.target

docker.service文件添加执行权限,执行如下命令:

chmod +x /etc/systemd/system/docker.service

启动服务

每次修改docker.service这个文件时都要重新加载下,执行下面命令执行:

systemctl daemon-reload

执行如下命令启动docker:

systemctl start docker

配置开启自启动,执行如下命令:

systemctl enable docker

验证docker是否启动成功

执行如下命令查看docker状态,显示active(running)表示启动成功。

systemctl status  docker

执行如下命令,查看版本信息

[root@harbor ~]# docker -v
Docker version 18.06.3-ce, build d7080c1

安装docker-compose

docker-compose下载地址[2],下载之后把它移到相应的目录下,并赋予执行的权限:

mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose  
chmod +x /usr/local/bin/docker-compose

测试安装结果

查看docker-compose的对应版本

[root@harbor ~]# docker-compose -v
Docker Compose version v2.9.0

部署Harbor

下载离线安装包

从这个harbor下载地址[3],下载对应的Harbor版本的软件。

解压安装包

把下载好的离线包解压到指定的目录下:

tar -zxvf harbor-offline-installer-v2.3.1_2.tgz -C /usr/local/

修改配置文件

拷贝模板文件为 harbor.yml

cp harbor.yml.tmpl  harbor.yml

编辑 harbor.yml 配置文件,hostname harbor 对外暴露的访问地址,HTTP 服务对外暴露 8888端口。这里暂时先不配置 HTTPS,将 HTTPS 相关内容注释。

部署 Harbor

修改完配置文件后,只需要执行install.sh 脚本即可安装 Harbor

./install.sh

查看 Harbor 组件运行状况:

登录页面

浏览器输入 http://10.91.74.240:8888 访问 Harbor 页面,用户名和密码为 harbor.yml 配置文件中默认设置的 adminHarbor12345

推送镜像

从公网拉取一个pause:3.7 版本的镜像 ,打包导出并上传到内网机上

docker save -o pause:3.7.tar registry.aliyuncs.com/google_containers/pause:3.7

编辑 /etc/docker/daemon.json,设置允许访问的 HTTP 仓库地址。

{
"insecure-registries":["10.91.74.240:8888"]
}

修改镜像 tag:

docker tag pause:3.7 10.91.74.240:8888/k8s/pause:3.7

登录 Harbor:

[root@harbor ~]# docker login 10.91.74.240:8888
Username: admin
Password:
Login Succeeded

推送镜像到 Harbor:

[root@harbor ~]# docker push 10.91.74.240:8888/k8s/pause:3.7
The push refers to repository [10.91.74.240:8888/k8s/pause]
1cb555415fd3: Pushed
3.7: digest: sha256:445a99db22e9add9bfb15ddb1980861a329e5dff5c88d7eec9cbf08b6b2f4eb1 size: 526

查看推送的镜像:

写到最后

至此,您已经成功在离线环境下部署了Harbor。无需网络,也能轻松部署Harbor!通过本文提供的离线安装攻略,您可以在任何环境中都能享受到Harbor的便利和安全性。愿本文能对您在容器化之路上的旅程有所帮助!

Reference

[1]

docker离线包: https://download.docker.com/linux/static/stable/x86_64/

[2]

docker-compose下载地址: https://github.com/docker/compose/releases/tag/v2.9.0

[3]

harbor下载地址: https://github.com/goharbor/harbor/releases/download/v2.3.1/harbor-offline-installer-v2.3.1.tgz


相关推荐

  • 被开除了,因为用了Docker。。
  • 程序汪7万接的无人台球室项目,开发周期37天
  • 一代快时尚鼻祖走到了悬崖边
  • 马斯克称一些被裁员工的遣散费过低,将予以补偿;Mistral 宣布最新开放大模型 Mixtral 8x22B | 极客头条
  • 用 AI 和不用 AI 学习编码,区别在于……
  • 调查了 150 位 ChatGPT 用户后,有了最新的发现
  • 退休一天后,波士顿动力宣布:人形机器人 Atlas 以全新电动化状态“复活”!
  • 创业14年,我总结了7条最重要的赚钱原则
  • ChatGPT、大模型、AI资料分享群
  • 5个简单好用的本地运行大模型的方法
  • 这款Linux发版发起AI禁令!生成代码质量堪忧!阿里也被大模型幻觉愚弄了!网友:人比生产力更重要!
  • 如何用 AI 工具做数据分析与可视化?
  • 这个 404 页面,是真的炫酷~
  • 耗时几个月,我们做的小工具上线啦!
  • Kafka的2种日志清理策略感受一下
  • 波士顿动力抛弃液压机器人Atlas,推出全新电动化机器人,动作超灵活
  • Stable Diffusion 3 API 发布!超越Midjourney v6和DALL-E 3
  • 极越员工称因购买小米SU7被辞退?公司回应来了
  • 利用 GitOps 优化阿迪达斯的容器平台
  • 预约直播|AIGC 来袭,未来哪类岗位会稀缺?