如何将mosquitto docker日志安装到本地PC

问题描述

我已经在Ubuntu中安装了eclipse-mosquitto docker image。我正在尝试使用docker-compose运行它。 Mosquitto需要3个目录,如docker hub页面中所述:

  1. config:包含mosquitto.conf和bridge.conf文件
  2. 数据:其中包含mosquitto.db文件
  3. log:包含mosquitto.log文件

在本地PC中,我创建了一个名为mosquitto的目录,其中包含上述所有目录和文件

mosquitto

    -> config
        -> mosquitto.conf
        -> conf.d
            -> bridge.conf 
    -> data
        -> mosquitto.db
    -> log
        -> mosquitto.log

下面是docker-compose.yml文件

version: '2.4'

services:
    mosquitto:
        image: eclipse-mosquitto:latest
        volumes:
            - /home/john/Documents/docker/mosquitto:/mosquitto
        restart: always

,我以sudo docker-compose up开头。它的容器开始正常运行,我可以看到正确安装在mosquitto容器内的所有目录和文件。我可以看到日志开始出现,并且mosquitto.log文件的大小也在容器内增加,但是本地计算机中没有日志。

为什么我安装了卷后会发生这种情况。我还想在ubuntu本地PC的mosquitto.log获取日志。我怎样才能做到这一点。任何人都可以提出一些好的解决方案。谢谢

解决方法

这是因为docker正在创建2个本地卷并将它们安装在/mosquitto目录的顶部,以保存持久性和日志数据。

在“卷”部分添加额外的安装,然后它将绑定本地目录,而不是创建未命名的本地卷。

version: '2.4'

services:
    mosquitto:
        image: eclipse-mosquitto:latest
        volumes:
            - /home/john/Documents/docker/mosquitto:/mosquitto
            - /home/john/Documents/docker/mosquitto/data:/mosquitto/data
            - /home/john/Documents/docker/mosquitto/log:/mosquitto/log
        restart: always