离线安装harbor容器镜像仓库单机版(harbor-v2.3.5)

记录:358

场景:在CentOS 7.9操作系统上,离线部署harbor容器镜像仓库单机版,使用Redis为外部缓存、使用PostgreSQL为外部数据库、使用docker-ce操作容器、使用docker-compose操作harbor容器镜像仓库。

版本:

操作系统:CentOS 7.9

Harbor版本:harbor-v2.3.5

docker-ce版本:docker-ce-19.03.15

docker-compose版本:docker-compose-v2.2.3

Redis版本:redis-6.2.4

PostgreSQL版本:PostgreSQL 13.4

1.主机规划

1.1主机基础配置

主机app166;内存:4GB;硬盘(SCSI):50GB;硬盘2(SCSI):40GB。

1.2主机安装软件规划

主机部署Harbor、docker-ce、docker-compose、Redis、PostgreSQ等软件规划。

1.3主机基础软件

(1)配置对应主机名称、hosts文件。

(2)关闭防火墙、关闭SELinux。

(3)配置离线本地镜像仓库。

(4)安装gcc高版本。

1.4配置br_netfilter

(1)加载内核模块

命令:modprobe br_netfilter

(2)配置参数

修改命令:vi /etc/sysctl.conf

修改内容:

net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1

(3)参数生效

命令:sysctl -p

2.安装redis

2.1主机规划

目标:使用1台主机部署redis。

主机app166;IP:192.168.19.166。

2.2下载安装包

离线安装Redis集群,需要在公网机器下载包并拷贝到内网。

2.2.1下载redis-6.2.4.tar.gz

下载命令:wget  http://download.redis.io/releases/redis-6.2.4.tar.gz

解析:下载完成后,redis-6.2.4.tar.gz包在当前目录。

2.2.2下载gcc依赖包

(1)下载gcc相关的rpm包

下载命令:yum install --downloadonly --downloaddir /home/mirror/gcc-rpm devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils gcc

(2)把下载包拷贝到内网机器制作成本地镜像

2.3安装gcc

(1)安装gcc

安装命令:yum  install -y devtoolset-9-gcc devtoolset-9-gcc-c++  devtoolset-9-binutils gcc

(2)配置gcc

内容:echo 'source /opt/rh/devtoolset-9/enable'>>/etc/profile

生效:source /etc/profile

(3)查看gcc版本

命令:gcc --version

打印信息:gcc (GCC) 9.3.1 20200408 (Red Hat 9.3.1-2)

2.4解压redis包到指定目录

命令:tar -xzvf /home/apps/software/redis-6.2.4.tar.gz -C /home/apps/module/

解析:解压后,Redis相关内容在/home/apps/module/redis-6.2.4。

2.5编译redis

操作目录:cd /home/apps/module/redis-6.2.4

编译命令:make -C /home/apps/module/redis-6.2.4

解析:编译redis后,在redis-6.2.4/src目录下生成.o文件和redis-server等文件,生成./deps文件夹。

2.6安装redis

安装redis到指定目录,默认是在/usr/local/。

操作目录:cd /home/apps/module/redis-6.2.4

安装命令:make install PREFIX=/home/apps/module/redis-6.2.4

解析:把redis-6.2.4指定安装在/home/apps/module/redis-6.2.4,会在此目录下生成bin目录。

2.7创建redis节点目录

部署一个单机版redis,端口号为27003。

配置目录:mkdir -p /home/apps/module/redis-single/node-27003/conf

数据目录:mkdir -p /home/apps/module/redis-single/node-27003/data

日志目录:mkdir -p /home/apps/module/redis-single/node-27003/log

运行目录:mkdir -p /home/apps/module/redis-single/node-27003/run

2.8拷贝redis配置到节点目录

从/home/apps/module/redis-6.2.4拷贝redis.conf配置文件到集群配置目录。

节点27003:cp -r /home/apps/module/redis-6.2.4/redis.conf /home/apps/module/redis-single/node-27003/conf/

2.9修改配置文件

在主机161操作。

修改命令:vi /home/apps/module/redis-single/node-27003/conf/redis.conf

修改内容:

port 27003
bind 192.168.19.166
daemonize yes 
pidfile /home/apps/module/redis-single/node-27003/run/redis.pid
logfile "/home/apps/module/redis-single/node-27003/log/stdout.pid"
dir /home/apps/module/redis-single/node-27003/data
appendonly  yes
masterauth  <1234568>
requirepass  1234568
#bind 127.0.0.1 -::1

2.10启动redis

2.10.1启动指令

操作目录:cd /home/apps/module/redis-6.2.4/bin

启动27003节点:/home/apps/module/redis-6.2.4/bin/redis-server /home/apps/module/redis-single/node-27003/conf/redis.conf

2.10.2查看监听端口

命令:netstat -atulnp | grep redis

3.安装PostgreSQL

3.1主机规划

目标:使用一台主机部署PostgreSQL数据库,为Harbor集群提供共享存储数据库。

主机app166;IP:192.168.19.166。

3.2下载安装包

下载命令:wget https://ftp.postgresql.org/pub/source/v13.4/postgresql-13.4.tar.gz --no-check-certificate

解析:下载完成后,postgresql-13.4.tar.gz包在当前目录;--no-check-certificate,不验证服务端的证书。

3.3安装基础依赖

安装命令:yum install -y readline-devel zlib-devel zlib gcc

解析:安装基础依赖,避免安装PostgreSQL报错。

3.4创建Linux普通用户

(1)创建用户

默认超级用户root不能启动PostgreSQL,创建普通用户postgre。

创建用户命令:useradd postgres

(2)不设置密码使用root用户切换到postgres

登录postgres命令:su postgres

退出postgresml:exit

3.5解压PostgreSQL包

解压命令:tar -xzvf /home/apps/software/postgresql-13.4.tar.gz -C /home/apps/module

解析:把postgresql-13.4.tar.gz解压到指定目录。

3.6规划安装目录

(1)规划安装目录

创建目录:mkdir -p /home/apps/module/postgresql

(2)检查路径

操作目录:cd /home/apps/module/postgresql-13.4

执行命令:./configure  --prefix=/home/apps/module/postgresql

解析:./configure是postgresql自带的脚本。

3.7编译PostgreSQL

操作目录:cd /home/apps/module/postgresql-13.4

编译命令:make -C /home/apps/module/postgresql-13.4

解析:-C,编译指定目录下内容。

3.8安装PostgreSQL

操作目录:cd /home/apps/module/postgresql-13.4

安装目的目录:/home/apps/module/postgresql

安装命令:make install PREFIX=/home/apps/module/postgresql

解析:使用PREFIX,把PostgreSQL安装到指定目录。在指定目录下生成:bin、include、lib、share。

3.9创建PostgreSQL的数据目录

创建命令:mkdir -p /home/data/postgresql/data

解析:data目录存放PostgreSQL的数据。

3.10修改数据目录和安装目录的用户所有权

PostgreSQL安装目录和数据目录,所有权修改为postgres用户。

安装目录赋权:chown -R postgres:postgres /home/apps/module/postgresql/

数据目录赋权:chown -R postgres:postgres /home/data/postgresql/data/

3.11设置PostgreSQL环境变量

(1)切换用户和目录

切换到postgres用户下操作。

切换命令:su postgres

切换到目录:cd /home/postgres

查看用户下配置文件清单:ll -a

(2)修改配置

修改配置:vi .bash_profile

修改内容:

PGHOME=/home/apps/module/postgresql
export PGHOME
PGDATA=/home/data/postgresql/data
export PGDATA
PATH=$PATH:$HOME/.local/bin:$HOME/bin:$PGHOME/bin

解析:PGHOME,安装目录;PGDATA,数据目录。

(3)配置生效

配置生效命令:source ./.bash_profile

(4)确认配置生效

查看版本命令:psql -V

打印信息:psql (PostgreSQL) 13.4

查看命令所在目录:which psql

打印信息:/home/apps/module/postgresql/bin/psql

以上,两条命令均可以验证配置已经生效。

(5)设置开机启动配置生效

默认情况下,重启机器后.bash_profile的环境变量会失效,需手动执行source命令刷新配置。需设置为开机启动,自动刷新生效。

修改指令:vi /etc/profile

增加内容:source /home/postgres/.bash_profile

3.12初始化PostgreSQL数据库

初始化命令:initdb

解析:配置了环境变量,initdb命令在postgres用户任意命令可以使用。

打印成功信息:Success. You can now start the database server using:

pg_ctl -D /home/data/postgresql/data -l logfile start

3.13启动PostgreSQL数据库

(1)启动PostgreSQL

启动命令(指定日志目录):pg_ctl -D /home/data/postgresql/data -l /home/data/postgresql/data/postgres.log start

解析:在执行初始化initdb成功后,会提示登录命令,也就是默认启动命令。

(2)查看PostgreSQL监听端口

命令:netstat -atunlp | grep postgres

解析:postgres的默认端口是5432。

3.14登录PostgreSQL数据库和修改密码

(1)登录PostgreSQL

登录命令:psql

解析:默认登录不需要密码。

(2)修改登录密码

修改命令:\password

口令:1234568

解析:需输入两次

(3)退出登录

命令:\q

3.15设置远程可登录

(1)修改远程可登录

修改文件:vi /home/data/postgresql/data/postgresql.conf

修改内容:

listen_addresses = '*'

解析:把#listen_addresses = 'localhost',修改为匹配所有IP地址。

(2)修改登录需要密码

修改文件:vi /home/data/postgresql/data/pg_hba.conf

修改内容:

local   all             all                                     password
host    all             all             127.0.0.1/32            password
host    all             all             192.168.19.1/32         password
host    all             all             ::1/128                 password

解析:192.168.19.1/32,部署PostgreSQL主机是192.168.19.166。

3.16重启PostgreSQL数据库

(1)重启数据库

重启动命令:pg_ctl -D /home/data/postgresql/data -l /home/data/postgresql/data/postgres.log restart

(2)登录数据库

命令:psql

解析:提示Password for user postgres:,需要输入登录密码。

3.17创建数据库

(1)创建3个数据库

命令:create database  registry;

命令:create database notary_signer;

命令:create database notary_server;

解析:registry、notary_signer、notary_server是harbor需求的3个数据库。

4.安装docker

4.1主机规划

目标:使用1台主机部署docker。

主机app164;IP:192.168.19.166。

4.2下载docker-ce

(1)下载docker-ce

下载:docker-ce-19.03.15和docker-ce-cli-19.03.15

4.3安装docker-ce

(1)安装docker-ce

命令:yum install -y docker-ce-19.03.15 docker-ce-cli-19.03.15

(2)查看docker版本

查看版本:docker --version

4.4启动docker-ce

(1)启动docker-ce

命令:systemctl start docker

(2)关闭docker-ce

命令:systemctl stop docker

(3)查看docker-ce状态

命令:systemctl status docker

5.安装docker-compose

5.1下载docker-compose

(1)下载docker-compose

下载命令:wget https://github.com/docker/compose/releases/download/v2.2.3/docker-compose-linux-x86_64

5.2安装docker-compose

docker-compose-linux-x86_64是可执行包,直接使用。

(1)把包移到bin目录

命令:cp /home/apps/software/docker-compose-linux-x86_64 /usr/local/bin/docker-compose

(2)把docker-compose添加为可执行

命令:chmod +x /usr/local/bin/docker-compose

(3)查看docker-compose版本

命令:docker-compose --version

6.安装harbor

6.1主机规划

目标:使用1台主机部署harbor。

主机app166;IP:192.168.19.166。

6.2下载安装包

(1)下载

命令:wget https://github.com/goharbor/harbor/releases/download/v2.3.5/harbor-offline-installer-v2.3.5.tgz

6.3解压安装包

(1)解压到指定目录

命令:tar -xzvf /home/apps/software/harbor-offline-installer-v2.3.5.tgz -C /home/apps/module/

解析:离线安装包,直接解压到指定目录就行。-C,就是指定目录。

6.4修改配置

操作目录:/home/apps/module/harbor

(1)把harbor.yml.tmpl复制一份为harbor.yml

命令:cp harbor.yml.tmpl harbor.yml

(2)修改配置

修改命令:vi /home/apps/module/harbor/harbor.yml

修改内容(本例配置文件内容):

hostname: app166
http:
  port: 18021
#external_url: http://192.168.19.58:18121
harbor_admin_password: Harbor12345
data_volume: /harbor_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
external_database:
  harbor:
    host: 192.168.19.166
    port: 5432
    db_name: registry
    username: postgres
    password: 1234568
    ssl_mode: disable
    max_idle_conns: 100
    max_open_conns: 900
  notary_signer:
    host: 192.168.19.166
    port: 5432
    db_name: notary_signer
    username: postgres
    password: 1234568
    ssl_mode: disable
    max_idle_conns: 100
    max_open_conns: 900
  notary_server:
    host: 192.168.19.166
    port: 5432
    db_name: notary_server
    username: postgres
    password: 1234568
    ssl_mode: disable
    max_idle_conns: 100
    max_open_conns: 900    
external_redis:
  host: 192.168.19.166:27003
  password: 1234568
  registry_db_index: 1
  jobservice_db_index: 2
  chartmuseum_db_index: 3
  trivy_db_index: 5
  idle_timeout_seconds: 30
proxy:
  http_proxy:
  https_proxy:
  no_proxy:
  components:
    - core
    - jobservice
    - trivy
metric:
  enabled: false
  port: 9090
  path: /metrics

6.5加载harbor所需的镜像

操作目录:cd /home/apps/module/harbor

命令:docker load -i harbor.v2.3.5.tar.gz

解析:harbor.v2.3.5.tar.gz这个压缩包里包含harbor所需的组件镜像。docker需启动。

6.6把配置文件注入到harbor

操作目录:cd /home/apps/module/harbor

命令:./prepare

解析:harbor.yml是harbor自带脚本,功能就是把配置文件的内容注入到各组件中。

6.7安装harbor

操作目录:cd /home/apps/module/harbor

命令:./install.sh --with-trivy --with-chartmuseum

解析:./install.sh是harbor自带脚本,功能就是安装harbor的各个组件,安装完成后,默认启动各组件。

6.8查看harbor服务状态

(1)查看服务状态

命令:docker-compose ps

全路径:docker-compose -f /home/apps/module/harbor/docker-compose.yml ps

7.操作harbor

在安装完成后,以后使用harbor的,每个组件启动。

7.1启动redis

操作主机:app166

启动命令:

/home/apps/module/redis-6.2.4/bin/redis-server /home/apps/module/redis-single/node-27003/conf/redis.conf 

7.2启动PostgreSQL

操作主机:app166

操作用户:su postgres

启动命令:pg_ctl -D /home/data/postgresql/data -l /home/data/postgresql/data/postgres.log start

重启命令:pg_ctl -D /home/data/postgresql/data -l /home/data/postgresql/data/postgres.log restart

7.3启动docker

(1)启动docker-ce

命令:systemctl start docker

(2)关闭docker-ce

命令:systemctl stop docker

(3)查看docker-ce状态

命令:systemctl status docker

7.4确认docker-compose

可执行文件目录:ll /usr/local/bin/docker-compose

7.5启动harbor

(1)在配置文件目录操作

操作目录:cd /home/apps/module/harbor/

启动命令:docker-compose up

后台启动:docker-compose up -d

停止命令:docker-compose down

解析:在此目录下存放docker-compose的必须配置:docker-compose.yml。

(2)任意目录指定配置文件

命令:docker-compose -f /home/apps/module/harbor/docker-compose.yml up -d

解析:-f /home/apps/module/harbor/docker-compose.yml,指定配置文件;-d,后台进程。

7.6登录harbor

(1)登录信息

地址:http://192.168.19.166:18021

用户名/口令(默认):admin/Harbor12345

(2)harbor首页信息

harbor首页信息。

7.7登录harbor(命令行)

(1)添加私有仓库地址到docker配置

修改命令:vi /etc/docker/daemon.json

修改内容:

{
 "insecure-registries":["192.168.19.166:18021"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}

(2)重新加载docker配置

重新加载配置:systemctl daemon-reload

重启docker:systemctl restart docker

(3)登录

命令:docker login http://192.168.19.166:18021 -u admin -p Harbor12345

解析:打印日志Login Succeeded,就表示已经登录成功。

7.8推送一个容器镜像到Harbor镜像仓库

(1)查看本地镜像

查看:docker images

查看(指定容器):docker images goharbor/redis-photon

解析:在离线安装harbor时,本地就有harbor的相关镜像,就推送nginx-photon镜像到harbor镜像仓库。

(2)推送到镜像仓库

镜像打标签命令:docker tag goharbor/redis-photon:v2.3.5 192.168.19.166:18021/library/redis-photon:v2.3.5

镜像推送命令:docker push 192.168.19.166:18021/library/redis-photon:v2.3.5

(3)推送到镜像仓库

在harbor UI界面查看。

以上,感谢。

2022年12月9日

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值