Harbor是一个企业 Docker私人仓储的工程,当Docker-compose开始时, Harbor自身包括许多Docker-compose,它们通过Docker-compose来控制 containers的相关。
安装
具体的设置请参阅正式文件: Harbor-部署和配置指南。yml在我们对 harbor. yml进行了一些修改时,有以下几点需要考虑:
- 当您在 https中创建您自己的凭证并将其配置到 harbor. yml中。
- 客户机还必须将您所产生的凭证安装起来,不然就会出错。(所以一定要备份凭证)
- Docker – Using self-signed certificates
- 可以将data_volume作为/data/harbor,并将其作为一个周期性的备份。(也可以将 harbor安装到新设备上,并定时进行 Harbor的存储系统。)
- 对于企业来说,也有必要对 ldap整合确认进行配置。
然后,通过命令(sudo./install. s)来设置 harbor (看来一定要用 sudo,原因是所有的配置都是 root,并且有非常苛刻的特权。)当安装完毕时, harbor将会被自动地引导。
自动启动
查看 harbor 目录下的 docker-compose.yml 会发现,所有的 containers 都配置了 restart: always
:
version: '2.3'
services:
log:
image: goharbor/harbor-log:v1.8.1
container_name: harbor-log
restart: always
dns_search: .
# ......
registry:
image: goharbor/registry-photon:v2.7.1-patch-2819-v1.8.1
container_name: registry
restart: always
# ......
这表示所有的容器在意外关闭后都会自动重启,比如 docker 重启或服务器重启。(手动 stop 不会自动重启)
但是我在手动运行 docker-compose up -d
,然后重启服务器后,发现有几个 container 并没有自动重启:
[ryan@ryan-pc ~]$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f30d802002a4 goharbor/nginx-photon:v1.8.1 "nginx -g 'daemon of…" 13 hours ago Exited (128) 27 minutes ago 0.0.0.0:80->80/tcp nginx
21472ce8a993 goharbor/harbor-portal:v1.8.1 "nginx -g 'daemon of…" 13 hours ago Exited (128) 27 minutes ago 80/tcp harbor-portal
5d866bb17c58 goharbor/harbor-jobservice:v1.8.1 "/harbor/start.sh" 13 hours ago Exited (137) 26 minutes ago harbor-jobservice
0cf0f93b5a87 goharbor/harbor-core:v1.8.1 "/harbor/start.sh" 13 hours ago Up 11 seconds (health: starting) harbor-core
cba280d9b945 goharbor/redis-photon:v1.8.1 "docker-entrypoint.s…" 13 hours ago Exited (137) 26 minutes ago 6379/tcp redis
473e46d1f746 goharbor/harbor-registryctl:v1.8.1 "/harbor/start.sh" 13 hours ago Up 11 seconds (health: starting) registryctl
51f105f1691d goharbor/registry-photon:v2.7.1-patch-2819-v1.8.1 "/entrypoint.sh /etc…" 13 hours ago Exited (137) 26 minutes ago 5000/tcp registry
c41594ec7779 goharbor/harbor-db:v1.8.1 "/entrypoint.sh post…" 13 hours ago Up 11 seconds (health: starting) 5432/tcp harbor-db
713bd4961772 goharbor/harbor-log:v1.8.1 "/bin/sh -c /usr/loc…" 13 hours ago Up 11 seconds (health: starting) 127.0.0.1:1514->10514/tcp harbor-log
可以看到下列五个容器都处于 Exited 状态:
goharbor/nginx-photon:v1.8.1
goharbor/harbor-portal:v1.8.1
goharbor/harbor-jobservice:v1.8.1
goharbor/redis-photon:v1.8.1
goharbor/registry-photon:v2.7.1-patch-2819-v1.8.1
搜索发现有人提过这个 issue: https://github.com/goharbor/harbor/issues/7008
于是尝试将 harbor 配成 systemd 的 service,添加配置文件 /usr/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/local/bin/docker-compose -f {{ harbor_install_path }}/harbor/docker-compose.yml up
ExecStop=/usr/local/bin/docker-compose -f {{ harbor_install_path }}/harbor/docker-compose.yml down
[Install]
WantedBy=multi-user.target
其中 {{ harbor_install_path }}
换成自己的 harbor 安装路径。 还有 docker-compose 的绝对路径,请通过 which docker-compose
查看。
然后启动该项服务:
sudo systemctl enable harbor
sudo systemctl start harbor
现在查看下 harbor.service 的情况:
● harbor.service - Harbor
Loaded: loaded (/usr/lib/systemd/system/harbor.service; enabled; vendor preset: disabled)
Active: active (running) since Sun 2019-07-07 12:54:27 CST; 2min 4s ago
Docs: http://github.com/vmware/harbor
Main PID: 9734 (docker-compose)
Tasks: 11 (limit: 4915)
Memory: 35.7M
CGroup: /system.slice/harbor.service
└─9734 /usr/bin/python /usr/bin/docker-compose -f /home/ryan/harbor/docker-compose.yml up
7月 07 12:54:30 ryan-pc docker-compose[9734]: [128B blob data]
7月 07 12:54:31 ryan-pc docker-compose[9734]: [167B blob data]
7月 07 12:54:31 ryan-pc docker-compose[9734]: registryctl | WARNING: no logs are available with the 'syslog' log driver
7月 07 12:54:31 ryan-pc docker-compose[9734]: registry | WARNING: no logs are available with the 'syslog' log driver
7月 07 12:54:31 ryan-pc docker-compose[9734]: harbor-db | WARNING: no logs are available with the 'syslog' log driver
7月 07 12:54:31 ryan-pc docker-compose[9734]: redis | WARNING: no logs are available with the 'syslog' log driver
7月 07 12:54:31 ryan-pc docker-compose[9734]: harbor-core | WARNING: no logs are available with the 'syslog' log driver
7月 07 12:54:31 ryan-pc docker-compose[9734]: harbor-jobservice | WARNING: no logs are available with the 'syslog' log driver
7月 07 12:54:31 ryan-pc docker-compose[9734]: harbor-portal | WARNING: no logs are available with the 'syslog' log driver
7月 07 12:54:31 ryan-pc docker-compose[9734]: nginx | WARNING: no logs are available with the 'syslog' log driver
重启服务器再确认,发现 harbor 容器组终于全部 up 了:
[ryan@ryan-pc ~]$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
90943210e354 goharbor/nginx-photon:v1.8.1 "nginx -g 'daemon of…" 37 seconds ago Up 35 seconds (healthy) 0.0.0.0:80->80/tcp nginx
bc70706d7b5f goharbor/harbor-portal:v1.8.1 "nginx -g 'daemon of…" 38 seconds ago Up 36 seconds (healthy) 80/tcp harbor-portal
54e132bd1a10 goharbor/harbor-jobservice:v1.8.1 "/harbor/start.sh" 38 seconds ago Up 36 seconds harbor-jobservice
28ada4a941ee goharbor/harbor-core:v1.8.1 "/harbor/start.sh" 39 seconds ago Up 37 seconds (healthy) harbor-core
de44686f7e72 goharbor/registry-photon:v2.7.1-patch-2819-v1.8.1 "/entrypoint.sh /etc…" 39 seconds ago Up 38 seconds (healthy) 5000/tcp registry
e5efdae34c13 goharbor/harbor-db:v1.8.1 "/entrypoint.sh post…" 39 seconds ago Up 38 seconds (healthy) 5432/tcp harbor-db
a5fe52e1f184 goharbor/harbor-registryctl:v1.8.1 "/harbor/start.sh" 39 seconds ago Up 38 seconds (healthy) registryctl
4a74b5f3499a goharbor/redis-photon:v1.8.1 "docker-entrypoint.s…" 39 seconds ago Up 38 seconds 6379/tcp redis
677fd84d0a70 goharbor/harbor-log:v1.8.1 "/bin/sh -c /usr/loc…" 40 seconds ago Up 39 seconds (healthy) 127.0.0.1:1514->10514/tcp harbor-log
📮评论