где хранится файл логов в контейнере docker и как его скопировать? - PullRequest
3 голосов
/ 26 февраля 2020

У меня есть подобный dockerfile.

Когда я docker создаю службу, я могу использовать команду для просмотра журналов.

docker test -f logs

Я хочу скопировать файл журналов на мой локальный компьютер.

где находится путь?

docker file

FROM mcr.microsoft.com/dotnet/core/sdk:3.1-alpine AS build-env
WORKDIR /app

# Copy everything else and build
COPY ./ /app/
RUN dotnet restore -r linux-musl-x64 -s http://nexus.thedevcloud.net/repository/nuget-group/
RUN dotnet publish -r linux-musl-x64 -c Release -o DrugSync/out --no-restore

# Build runtime image
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-alpine

RUN apk add --no-cache icu-libs
ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false 
ENV LC_ALL=en_US.UTF-8 
ENV LANG=en_US.UTF-8 

WORKDIR /app
COPY --from=build-env /app/test/out/ /app/
ENTRYPOINT ["/app/test"]

1 Ответ

2 голосов
/ 26 февраля 2020
  • Файлы журналов можно найти по адресу /var/lib/docker/containers/<container id>/<container id>-xxx.log xxx обозначает различные форматы в зависимости от того, как вы его настроили.
  • Вы можете docker проверить каждый контейнер, чтобы увидеть, где находятся его журналы: docker inspect --format='{{.LogPath}}' $INSTANCE_ID

Подробнее о настройке ведения журнала можно узнать здесь

РЕДАКТИРОВАТЬ:

  • Аналогичный вопрос здесь
  • Кроме того, я попробовал его на моем, он показывает.

    $ docker inspect --format = '{{. LogPath}}' 878eb2faac5c / var / lib / docker /containers/878eb2faac5c9fe743fd9e9e6ba6ff7e0c3f1e02964df77e5a788dcd985c0d0b/878eb2faac5c9fe743fd9e9e6ba6ff7e0c3f1e02964df77e5a788dcd985c0d0b-json.log

1026 * Примечание: на Ma c машины это место было бы на VM хостинг на docker контейнеры, а не на MacOS Хост. Попробуйте screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty, чтобы получить доступ к местоположению.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...