Logging 停靠Kibana外部化日志
我一直在尝试将kibana日志外部化,这是在docker容器中运行的,没有运气。我的docker撰写如下:Logging 停靠Kibana外部化日志,logging,docker,kibana,Logging,Docker,Kibana,我一直在尝试将kibana日志外部化,这是在docker容器中运行的,没有运气。我的docker撰写如下: kibana: image: kibana:latest container_name: kib ports: - "5601:5601" links: - elasticsearch volumes: - /var/log:/var/log 和Kibana.yml-logging.dest=/var/log/Kibana.log 但是,当
kibana:
image: kibana:latest
container_name: kib
ports:
- "5601:5601"
links:
- elasticsearch
volumes:
- /var/log:/var/log
和Kibana.yml-logging.dest=/var/log/Kibana.log
但是,当我运行它时,容器中出现如下错误:
events.js:85
throw er; // Unhandled 'error' event
^
Error: EACCES, open '/var/log/kibana.log'
at Error (native)
这看起来像是权限问题(我正在Ubuntu上运行它,仅供参考)。我将主机上文件夹的权限设置为7777。有什么想法吗?谢谢kibana进程由运行 如图所示 dockerfile创建一个名为sinopia的用户,并以此运行所有操作。
但是,一般来说,这是一种良好的做法,在访问主机文件系统时,docker在主机上使用的uid与在容器上使用的uid相同。容器中的根在主机上具有根访问权限,容器中id为1000的用户sinopia映射到主机上的用户1000 如果在主机上创建id为1000的用户,则可以根据需要授予该用户对主机目录的权限 检查Dockerfile创建的用户sinatra的id,并查看是否可以在主机上授予对该id的访问权限 如果您
chmod+777
,请重试docker-compose-up
。(这是为其他人做的)
解释了chmod 777无效的原因:
是的,我创建了用户(这样我就可以在没有sudo的情况下运行docker),用户UID 1000 GID 1000。但是我的卷映射不正确-我已将卷映射到kibana上不存在的文件夹,配置文件指向此文件夹
我自己愚蠢的受害者。是的,我创建了用户(这样我就可以在没有sudo的情况下运行docker),用户UID 1000 GID 1000。但是,我的卷映射不正确-我已将卷映射到kibana上不存在的文件夹,配置文件指向此文件夹。是的,您提出了一个有效的观点,但错误太普遍了。@sharman感谢您的反馈。我已将您的评论包含在答案中,以提高可视性。