Centos 7安装Docker镜像仓库-Harbor
下载安装包并导入镜像
# 进入文件下载目录
cd /root/software/
# 下载安装文件
# 如果下载失败可以本地下载,下载后上传至服务器,https://github.com/goharbor/harbor/releases
wget https://storage.googleapis.com/harbor-releases/harbor-offline-installer-v2.1.0.tgz
# 解压文件
tar xvf harbor-offline-installer-v2.1.0.tgz -C /usr/local/
# 导入docker镜像
cd /usr/local/harbor
docker image load -i harbor.v2.1.0.tar.gz
导入镜像完成后如下所示,以goharbor
为前缀的是Harbor
要使用的镜像:
REPOSITORY TAG IMAGE ID CREATED SIZE
goharbor/chartmuseum-photon v2.1.0 5bad3dce5fd5 6 days ago 172MB
goharbor/redis-photon v2.1.0 45fa455a8eeb 6 days ago 68.7MB
goharbor/trivy-adapter-photon v2.1.0 9b443d147b3d 6 days ago 106MB
goharbor/clair-adapter-photon v2.1.0 cee42542dfb2 6 days ago 57.9MB
goharbor/clair-photon v2.1.0 9741a40b433c 6 days ago 167MB
goharbor/notary-server-photon v2.1.0 e20ff73edec7 6 days ago 139MB
goharbor/notary-signer-photon v2.1.0 2b783b793805 6 days ago 136MB
goharbor/harbor-registryctl v2.1.0 98f466a61ebb 6 days ago 132MB
goharbor/registry-photon v2.1.0 09c818fabdd3 6 days ago 80.1MB
goharbor/nginx-photon v2.1.0 470ffa4a837e 6 days ago 40.1MB
goharbor/harbor-log v2.1.0 402802990707 6 days ago 82.1MB
goharbor/harbor-jobservice v2.1.0 ff65bef832b4 6 days ago 165MB
goharbor/harbor-core v2.1.0 26047bcb9ff5 6 days ago 147MB
goharbor/harbor-portal v2.1.0 5e97d5e230b9 6 days ago 49.5MB
goharbor/harbor-db v2.1.0 44c0be92f223 6 days ago 164MB
goharbor/prepare v2.1.0 58d0e7cee8cf 6 days ago 160MB
quay.io/coreos/flannel v0.13.0-rc2 79dd6d6368e2 6 days ago 57.2MB
k8s.gcr.io/kube-proxy v1.18.5 a1daed4e2b60 2 months ago 117MB
k8s.gcr.io/kube-apiserver v1.18.5 08ca24f16874 2 months ago 173MB
k8s.gcr.io/kube-controller-manager v1.18.5 8d69eaf196dc 2 months ago 162MB
k8s.gcr.io/kube-scheduler v1.18.5 39d887c6621d 2 months ago 95.3MB
k8s.gcr.io/pause 3.2 80d28bedfe5d 7 months ago 683kB
k8s.gcr.io/coredns 1.6.7 67da37a9a360 7 months ago 43.8MB
k8s.gcr.io/etcd 3.4.3-0 303ce5db0e90 11 months ago 288MB
修改配置文件
# 进入安装包加压后目录
cd /usr/local/harbor
# 拷贝配置模板
cp harbor.yml.tmpl harbor.yml
# 编辑配置文件
vim harbor.yml
修改后配置文件如下所示:
# 修改IP地址
# The IP address or hostname to access admin UI and registry service.
# DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients.
hostname: 10.170.128.9
# 修改端口号
# http related config
http:
# port for http, default is 80. If https enabled, this port will redirect to https port
port: 83
# 注释https相关内容
# https related config
#https:
# https port for harbor, default is 443
#port: 443
# The path of cert and key files for nginx
#certificate: /your/certificate/path
#private_key: /your/private/key/path
检测harbor
cd /usr/local/harbor
./prepare
输出结果如下:
prepare base dir is set to /usr/local/harbor
WARNING:root:WARNING: HTTP protocol is insecure. Harbor will deprecate http protocol in the future. Please make sure to upgrade to https
Generated configuration file: /config/portal/nginx.conf
Generated configuration file: /config/log/logrotate.conf
Generated configuration file: /config/log/rsyslog_docker.conf
Generated configuration file: /config/nginx/nginx.conf
Generated configuration file: /config/core/env
Generated configuration file: /config/core/app.conf
Generated configuration file: /config/registry/config.yml
Generated configuration file: /config/registryctl/env
Generated configuration file: /config/registryctl/config.yml
Generated configuration file: /config/db/env
Generated configuration file: /config/jobservice/env
Generated configuration file: /config/jobservice/config.yml
Generated and saved secret to file: /data/secret/keys/secretkey
Successfully called func: create_root_cert
Generated configuration file: /compose_location/docker-compose.yml
Clean up the input dir
安装harbor
cd /usr/local/harbor
./install.sh
当显示下面结果时,证明已经安装完成:
Creating redis ... done
Creating harbor-core ... done
Creating network "harbor_harbor" with the default driver
Creating nginx ... done
Creating redis ...
Creating registry ...
Creating harbor-db ...
Creating harbor-portal ...
Creating registryctl ...
Creating harbor-core ...
Creating nginx ...
Creating harbor-jobservice ...
✔ ----Harbor has been installed and started successfully.----
查看相关容器运行结果
docker ps
执行结果如下:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7310212b3283 goharbor/harbor-jobservice:v2.1.0 "/harbor/entrypoint.…" About a minute ago Up About a minute (healthy) harbor-jobservice
b0dfde9a5176 goharbor/nginx-photon:v2.1.0 "nginx -g 'daemon of…" About a minute ago Up About a minute (healthy) 0.0.0.0:83->8080/tcp nginx
ad83a154eef4 goharbor/harbor-core:v2.1.0 "/harbor/entrypoint.…" About a minute ago Up 59 seconds (healthy) harbor-core
715f26c96edd goharbor/harbor-portal:v2.1.0 "nginx -g 'daemon of…" About a minute ago Up About a minute (healthy) harbor-portal
93ae5f5a4ef0 goharbor/harbor-db:v2.1.0 "/docker-entrypoint.…" About a minute ago Up About a minute (healthy) harbor-db
10c07afdfa76 goharbor/harbor-registryctl:v2.1.0 "/home/harbor/start.…" About a minute ago Up About a minute (healthy) registryctl
8b5295f4be2d goharbor/redis-photon:v2.1.0 "redis-server /etc/r…" About a minute ago Up About a minute (healthy) redis
2058a727da79 goharbor/registry-photon:v2.1.0 "/home/harbor/entryp…" About a minute ago Up About a minute (healthy) registry
8117d47b1cd7 goharbor/harbor-log:v2.1.0 "/bin/sh -c /usr/loc…" About a minute ago Up About a minute (healthy) 127.0.0.1:1514->10514/tcp harbor-log
设置harbor开启启动
# 创建开启启动服务文件
vim /lib/systemd/system/harbor.service
开机启动服务文件内容:
[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
ExecStart=/usr/bin/docker-compose -f /usr/local/harbor/docker-compose.yml up
ExecStop=/usr/bin/docker-compose -f /usr/local/harbor/docker-compose.yml down
[Install]
WantedBy=multi-user.target
# 启动harbor
systemctl start harbor
# 设置开机启动
systemctl enable harbor
访问镜像仓库
# 地址
http://10.170.128.9:83/
备注,不用执行:docke-compose相关命令
# 在该目录下执行
cd /usr/local/harbor
docker-compose up -d # 后台启动,如果容器不存在根据镜像自动创建
docker-compose down -v # 停止容器并删除容器
docker-compose start # 启动容器,容器不存在就无法启动,不会自动创建镜像
docker-compose stop # 停止容器