harbor版本:
v1.10.2
遇到问题:
使用 docker-compose down命令关闭harbor,然后使用./install.sh --with-chartmuseum
命令重新安装带chart仓库的harbor,然后发现启动不了,报以下错误:
[Step 5]: starting Harbor ... Creating network "harbor_harbor" with the
default driver Creating network"harbor_harbor-chartmuseum" with the default
driver Creating harbor-log... done Creating redis ... Creating registryctl ...
Creating harbor-portal... error Creating chartmuseum ... Creating harbor-db ...
Creating registryctl... error ERROR: for harbor-portal Cannot start service
portal: failed to initialize logging driver: dial tcp 127.0.0.1:1514: connect:
connection refused ERROR:for chartmuseum Cannot start service chartmuseum:
failed to initialize logging driver: dial tcp 127.0.0.1:1514: connect:
connection refused Creating redis... error ERROR: for registryctl Cannot start
service registryctl: failed to initialize logging driver: dial tcp
127.0.0.1:1514: connect: connection refused Creating registry... error ERROR:
for registry Cannot start service registry: failed to initialize logging
driver: dial tcp 127.0.0.1:1514: connect: connection refused ERROR:for redis
Cannot startservice redis: failed to initialize logging driver: dial tcp
127.0.0.1:1514: connect: connection refused ERROR:for portal Cannot start
service portal: failed to initialize logging driver: dial tcp 127.0.0.1:1514:
connect: connection refused ERROR:for chartmuseum Cannot start service
chartmuseum: failed to initialize logging driver: dial tcp 127.0.0.1:1514:
connect: connection refused ERROR:for registryctl Cannot start service
registryctl: failed to initialize logging driver: dial tcp 127.0.0.1:1514:
connect: connection refused ERROR:for postgresql Cannot start service
postgresql: failed to initialize logging driver: dial tcp 127.0.0.1:1514:
connect: connection refused ERROR:for registry Cannot start service registry:
failed to initialize logging driver: dial tcp 127.0.0.1:1514: connect:
connection refused ERROR:for redis Cannot start service redis: failed to
initialize logging driver: dial tcp 127.0.0.1:1514: connect: connection refused
ERROR: Encountered errorswhile bringing up the project.
使用docker-compose ps查看容器,发现harbor-log容器一直在重启。
[root@harbor harbor]# docker-compose ps Name Command State Ports
------------------------------------------------------------------- chartmuseum
./docker-entrypoint.sh Exit 128 harbor-db /docker-entrypoint.sh Exit 128
harbor-log /bin/sh -c /usr/local/bin/... Restarting harbor-portal nginx -g
daemon off; Exit 128 redis redis-server /etc/redis.conf Exit 128 registry
/home/harbor/entrypoint.sh Exit 128 registryctl /home/harbor/start.sh Exit 128
使用docker logs -f harbor-log查看harbor-log日志:
[root@harbor harbor]# docker logs -f harbor-log sudo: Account or password is
expired, reset your password and try again sudo: a terminal is required toread
the password; either use the -S option to read from standard input or configure
an askpass helper Changing passwordfor root. sudo: unable to change expired
password: Authentication token manipulation error sudo: Account or password is
expired, reset your password and try again sudo: a terminal is required toread
the password; either use the -S option to read from standard input or configure
an askpass helper sudo: unable to change expired password: Authentication token
manipulation error Changing passwordfor root. sudo: Account or password is
expired, reset your password and try again Changing passwordfor root. sudo: a
terminal is required toread the password; either use the -S option to read from
standard input or configure an askpass helper sudo: unable to change expired
password: Authentication token manipulation error sudo: Account or password is
expired, reset your password and try again Changing passwordfor root. sudo: a
terminal is required toread the password; either use the -S option to read from
standard input or configure an askpass helper sudo: unable to change expired
password: Authentication token manipulation error sudo: Account or password is
expired, reset your password and try again sudo: a terminal is required toread
the password; either use the -S option to read from standard input or configure
an askpass helper Changing passwordfor root. sudo: unable to change expired
password: Authentication token manipulation error sudo: Account or password is
expired, reset your password and try again sudo: a terminal is required toread
the password; either use the -S option to read from standard input or configure
an askpass helper Changing passwordfor root. sudo: unable to change expired
password: Authentication token manipulation error sudo: Account or password is
expired, reset your password and try again sudo: a terminal is required toread
the password; either use the -S option to read from standard input or configure
an askpass helper sudo: unable to change expired password: Authentication token
manipulation error Changing passwordfor root. sudo: Account or password is
expired, reset your password and try again Changing passwordfor root. sudo: a
terminal is required toread the password; either use the -S option to read from
standard input or configure an askpass helper sudo: unable to change expired
password: Authentication token manipulation error sudo: Account or password is
expired, reset your password and try again sudo: a terminal is required toread
the password; either use the -S option to read from standard input or configure
an askpass helper sudo: unable to change expired password: Authentication token
manipulation error Changing passwordfor root. sudo: Account or password is
expired, reset your password and try again Changing passwordfor root. sudo: a
terminal is required toread the password; either use the -S option to read from
standard input or configure an askpass helper sudo: unable to change expired
password: Authentication token manipulation error sudo: Account or password is
expired, reset your password and try again sudo: a terminal is required toread
the password; either use the -S option to read from standard input or configure
an askpass helper Changing passwordfor root. sudo: unable to change expired
password: Authentication token manipulation error
解决方案
# 导出harbor-log容器 mkdir -p /tmp/harbor-log cd /tmp/harbor-log docker export
harbor-log -o harbor-log.tar# 解压tar包 tar xvfp harbor-log.tar # 修改shadow文件的值 sed
-i's/:90:/:99999:/g' /tmp/harbor-log/etc/shadow # 将修改后的shadow文件挂载到harbor-log容器内
mkdir -p /opt/harbor-log-etc/ cp /tmp/harbor-log/etc/shadow
/opt/harbor-log-etc/shadow# 修改docker-composr.yml文件,harbor-log容器的volumes配置,增加以下配置
- type: bind source: /opt/harbor-log-etc/shadow target: /etc/shadow# 重启harbor即可
docker-compose down docker-compose up -d