在当今云计算时代,容器化技术正逐渐成为软件开发和部署的主流方式。而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。