Консольное приложение в докере не работает

#docker #.net-core

Вопрос:

Я пытаюсь изучить докер практически. Для начала я создал простое консольное приложение .net core 3.1. Это приложение просто записывает сообщение в текстовый файл в определенном месте. Я создал из него образ докера, а затем контейнер докера из изображения. Когда я запускаю контейнер docker, он запускается и успешно останавливается.

Файл docker:

 FROM mcr.microsoft.com/dotnet/aspnet:3.1

COPY bin/Release/netcoreapp3.1/publish App/

WORKDIR /App

ENTRYPOINT ["dotnet", "ConsoleApp1.dll"]
 

Я также проверил журналы, используя команду «docker logs container_id». Но это ничего не возвращает.

Я что-нибудь упускаю?

Ответ №1:

Докер запускает процесс внутри контейнера, когда этот процесс заканчивается, контейнер останавливается и тоже заканчивается. Поскольку процесс в вашем контейнере только что-то записывает и завершает работу, контейнер также завершается и останавливается.

Также текстовый файл записывается в файловую систему контейнера. Таким образом, вы не сможете увидеть его на своем хосте, если не используете том. Вместо этого попробуйте распечатать строку в стандартном формате

Комментарии:

1. Спасибо. Ваше предложение написать контент на стандартном выводе сработало. Я попробовал пример, приведенный на docs.microsoft.com/en-us/dotnet/core/docker/… для записи данных в окно консоли и просмотра. Это сработало. Я также попробую использовать подход с объемами.