harbor Error response from daemon: configured logging driver does not support reading 解决方案

如果对您有帮助,麻烦点个赞!!!

剖析:
  • 分析docker-compose logs
  • 报错信息Error response from daemon: configured logging driver does not support reading
  • 发现nginx的状态一直是unhealthy(不健康的状态)或者是无线重启。
  • 查找网上很多资料基本全试过了,github上的issues从头翻到尾也没有谁给出准确答案。
其他人的解决方案大概说一下:

1、第一种最简单(无效)

docker-compose down -v   (关闭)

docker-compose up -d        (重启)

2、docker版本过低(不可能,我的基本是最新的,也不可能去删除文件夹,最重要的就是历史数据)使用docker-compose安装harbor教程&&运维记录_error response from daemon: configured logging dri_刘坚的博客-CSDN博客

3、这种问题属于端口号,也不存在因为我映射的是8080端口

<think>好的,我需要解决Docker容器初始化日志驱动时遇到的连接被拒绝问题,错误是“failed to initialize logging driver: dial tcp [::1]:1514: connect: connection refused”。首先,我应该理解这个错误的原因。根据用户提供的引用资料,特别是引用[2]和[5],问题通常与rsyslog服务未正确配置或未运行有关。Harbor依赖rsyslog来接收日志,如果服务没有监听正确的端口(比如1514),或者防火墙阻止了连接,就会导致这个问题。 接下来,我应该按照步骤来排查和解决。首先检查rsyslog服务是否正在运行。用户提到在引用[2]中,重启rsyslog服务可以解决问题,所以可能需要执行systemctl status rsyslog来查看状态。如果服务没有运行,启动它或者重启它可能会有帮助。 然后,检查rsyslog的配置文件,确保监听的端口正确。引用[5]提到需要编辑/etc/rsyslog.conf文件,取消注释相关的模块并设置端口为1514。需要确认$ModLoad imtcp和$InputTCPServerRun 1514这两行是否已经正确配置,并且没有被注释掉。修改后,必须重启rsyslog服务才能使配置生效。 接下来,检查端口监听情况。使用netstat或ss命令来确认rsyslog是否在1514端口上监听TCP连接。例如,执行netstat -tuln | grep 1514,如果看到tcp6或tcp的监听,说明配置正确。如果没有,可能需要重新检查配置文件或者服务状态。 防火墙设置也是一个可能的原因。即使rsyslog配置正确,如果防火墙阻止了1514端口的连接,仍然会导致问题。需要检查防火墙规则,确保1514端口是开放的。用户可能使用的是firewalld或iptables,需要根据系统环境进行调整。 此外,查看Harbor的日志,特别是harbor-log容器的日志,可能会有更详细的错误信息。根据引用[4],harbor-log容器可能一直处于重启状态,这说明日志服务的问题影响到了整个Harbor的正常运行。可能需要通过docker logs命令查看具体错误。 最后,重启Harbor服务。在修改了rsyslog配置并确保其正常运行后,需要停止并重新启动Harbor服务,如引用[2]中提到的使用docker-compose命令停止和启动服务。这可以让Harbor重新连接到正确的日志服务。 如果以上步骤都正确执行,问题应该得到解决。如果仍然存在问题,可能需要进一步检查网络配置或Docker的日志驱动设置,确保没有其他冲突的配置。</think>### Docker日志驱动初始化失败问题解决方案 当Docker容器初始化日志驱动时出现`failed to initialize logging driver: dial tcp [::1]:1514: connect: connection refused`错误,通常与日志收集服务(如`rsyslog`)的配置或运行状态相关。以下是逐步解决方案: --- #### **步骤1:验证rsyslog服务状态** 1. 检查服务是否运行: ```bash systemctl status rsyslog ``` - 若未运行,启动服务: ```bash systemctl start rsyslog ``` - 若已运行但异常,重启服务: ```bash systemctl restart rsyslog ``` --- #### **步骤2:配置rsyslog监听端口** 1. 编辑配置文件`/etc/rsyslog.conf`: ```bash vim /etc/rsyslog.conf ``` 2. 确保以下两行已取消注释并修改端口为`1514`: ```plaintext $ModLoad imtcp # 加载TCP模块 $InputTCPServerRun 1514 # 监听1514端口 ``` - 修改后保存文件[^5]。 3. 重启rsyslog使配置生效: ```bash systemctl restart rsyslog ``` --- #### **步骤3:检查端口监听状态** 验证rsyslog是否在`1514`端口监听TCP请求: ```bash netstat -tuln | grep 1514 ``` 预期输出应包含: ```plaintext tcp6 0 0 :::1514 :::* LISTEN ``` --- #### **步骤4:检查防火墙设置** 确保防火墙允许`1514`端口的TCP通信: - **firewalld**: ```bash firewall-cmd --add-port=1514/tcp --permanent firewall-cmd --reload ``` - **iptables**: ```bash iptables -A INPUT -p tcp --dport 1514 -j ACCEPT service iptables save ``` --- #### **步骤5:重启Harbor服务** 1. 停止Harbor服务: ```bash docker-compose -f /path/to/harbor/docker-compose.yml stop ``` 2. 启动Harbor服务: ```bash docker-compose -f /path/to/harbor/docker-compose.yml start ``` --- #### **步骤6:验证Harbor容器状态** 检查Harbor容器是否正常运行: ```bash docker-compose ps ``` 若`harbor-log`容器仍异常,查看其日志定位问题: ```bash docker logs harbor-log-container-id ``` --- ### 关键点总结 - **根本原因**:rsyslog未正确配置或端口被阻塞导致Docker无法连接日志服务[^2]。 - **典型场景**:Harbor依赖rsyslog收集日志,配置错误会引发容器无限重启[^3][^4]。 - **扩展建议**:若使用其他日志驱动(如`syslog`、`journald`),需同步检查对应服务的配置。 ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值