从 docker 容器访问日志

Dor*_*rin 7 python logging docker dockerfile

我有一个在 docker 容器中运行的 python 服务器。我使用 python 日志记录我的消息,但我不知道如何从容器中查找/查看我的日志文件。

# Pull base image
FROM python:3

# Copy code to the container
ADD src /usr/app
WORKDIR /usr/app

# run configuration
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt

# Start script
CMD [ "python", "./main.py"]
Run Code Online (Sandbox Code Playgroud)

我这样启动服务器:

sudo docker run -it -p 5000:5000 --rm my_app
Run Code Online (Sandbox Code Playgroud)

如何访问服务器日志?

谢谢

eLR*_*uLL 5

您始终可以使用以下命令检查服务的直接 docker 输出:

docker logs my-container-instance
Run Code Online (Sandbox Code Playgroud)

要检查日志路径文件,您可以使用:

docker inspect my-cintainer-instance
Run Code Online (Sandbox Code Playgroud)

LogPath并在 json 输出中查找密钥。


小智 3

我认为您可以在“docker run”中使用 -v 参数将主机文件夹安装到容器中的文件夹。

    sudo docker run -it -p 5000:5000 -v hostPath:containerPathContainingLogs --rm my_app
Run Code Online (Sandbox Code Playgroud)

然后您将在hostPath中查看您的日志(它映射到容器中的containerPathContainingLogs)。

或者以另一种方式,如果您的 docker 映像包含 bash,您可以使用 docker ps -a 查找您运行的容器 id,并使用“docker exec -it your-container-id bash”登录您的容器,cd 到您的日志路径并查看您的日志。

或者您可以尝试 docker log your-container-id。