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

首先,我们需要提前安装好Docker环境。由于本环境模拟的是无法链接互联网的情况,所以安装Docker的方式也是采用离线部署的方式。以下载「docker-18.06.3-ce版本」为例,您可以从Docker官网或其他可靠来源下载相应的离线包[1]。

解压文件:把下载的压缩包解压到指定的目录下,例如/usr/bin。执行如下命令进行解压操作:

```bash

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

```

接下来,将Docker注册为service。进入/etc/systemd/system/目录,并创建docker.service文件,然后将下面的内容复制到docker.service文件中:

```ini

[Unit]

Description=Docker Application Container Engine

Documentation=http://docs.docker.com

Requires=network-online.target

After=network-online.target

ConditionFileNotEmpty=/etc/docker/daemon.json

[Service]

Type=notify

Restart=always

ExecStart=/usr/bin/dockerd --host=unix:///var/run/docker.sock --containerd=/run/containerd/containerd.sock

TimeoutSec=0

RestartSec=5s

LimitNOFILE=40000

LimitNPROC=65535

SendSIGKILL=no

[Install]

WantedBy=multi-user.target

```

保存修改后,重新加载systemd配置并启动Docker服务:

```bash

systemctl daemon-reload

systemctl enable docker

systemctl start docker

```

至此,您已经成功在离线环境下部署了Docker,可以开始使用Harbor了。

以下是根据提供的内容重构的systemd服务配置文件:

```ini

[Unit]

Description=Docker Application Container Engine

Documentation=https://docs.docker.com

After=network-online.target firewalld.service

Wants=network-online.target

[Service]

Type=notify

ExecStart=/usr/bin/dockerd --selinux-enabled=false

ExecReload=/bin/kill -s HUP $MAINPID

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

Delegate=yes

KillMode=process

Restart=on-failure

StartLimitBurst=3

StartLimitInterval=60s

[Install]

WantedBy=multi-user.target

```

请根据提供的内容完成内容重构,并保持段落结构:

1. 为docker.service文件添加执行权限:

```

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

```

2. 启动服务:

```

systemctl start docker

```

3. 配置开启自启动:

```

systemctl enable docker

```

4. 验证docker是否启动成功:

```

systemctl status docker

```

5. 查看版本信息:

```

docker -v

```

6. 安装docker-compose:

```

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

```

7. 测试安装结果:

```

docker-compose -v

```

8. 部署Harbor:

下载离线安装包:从这个harbor下载地址[3],下载对应的Harbor版本的软件。

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

```

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

```

9. 修改配置文件:拷贝模板文件为 harbor.yml:

```

cp harbor.yml.tmpl harbor.yml

```

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

以下是重构后的内容:

### 查看 Harbor 组件运行状况

1. 登录页面

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

### 推送镜像

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

```bash

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

```

4. 编辑 `/etc/docker/daemon.json` 文件,设置允许访问的 HTTP 仓库地址:

```json

{

"insecure-registries": [

"10.91.74.240:8888"

]

}

```

5. 修改镜像 tag:

```bash

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

```

6. 登录 Harbor:

```bash

[root@harbor ~]# docker login 10.91.74.240:8888

Username: admin

Password: Login Succeeded

```

7. 推送镜像到 Harbor:

```bash

[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

您可以在这里下载 Docker Compose v2.9.0。如果您需要离线安装 harbor,您可以在这里下载 harbor-offline-installer-v2.3.1.tgz。