Введение
В этой статье мы собираемся создать образ Docker для консольного приложения .net framework. Образ Docker позволит консольному приложению выполняться в контейнере Docker.
Консольное приложение
Консольное приложение, которое мы будем использовать, называется HelloWorldConsole.exe. При запуске из командной строки приложение отображает «Hello World».
Приложение представляет собой программу C# (c Sharp), скомпилированную с использованием .net framework 4.7. Ниже приведен исходный код приложения, которое мы будем использовать в этой статье. Хотя в этой статье мы будем использовать только скомпилированное приложение.
using System; namespace HelloWorldConsole { internal class Program { static void Main() { Console.WriteLine("Hello World"); } } }
Процедура контейнеризации
В этой процедуре мы собираемся создать Dockerfile. В этом файле описывается, как создать образ Docker для консольного приложения HelloWorldConsole.exe.
Шаг 1 –в том же каталоге, что и приложение HelloWorldConsole.exe, создайте текстовый файл с именем Dockerfile без расширения.
Шаг 2 –с помощью текстового редактора добавьте следующий код в файл Dockerfile.
FROM mcr.microsoft.com/dotnet/framework/runtime:4.8 WORKDIR /app COPY . . ENTRYPOINT ["/app/HelloWorldConsole.exe"]
Команда FROM указывает, что образ Docker будет наследоваться от образа Docker среды выполнения Microsoft dotnet.
Команда WORKDIR устанавливает рабочий каталог для dockerfile в app.
Команда COPY копирует файлы с хост-компьютера в образ Docker. Первая точка указывает на копирование из текущей папки (папки, содержащей файл докера). Вторая точка указывает на копирование в WORKDIR, который в этом примере является папкой приложения.
Команда ENTRYPOINT указывает программу, которая будет выполняться при запуске контейнера.
Шаг 3.Откройте командную строку и измените каталог на папку, содержащую Dockerfile.
Шаг 4. Выполните команду docker для создания файла образа. Команда создаст новый образ докера с именем helloworldconsole. Все имена образов Docker написаны строчными буквами. Точка (точка) в конце команды очень важна, поскольку она информирует команду о необходимости поиска Dockerfile в текущем рабочем каталоге.
docker image build --tag helloworldconsole .
Шаг 5.Выполните команду docker, чтобы запустить контейнер, используя образ, созданный на предыдущем шаге. Аргумент name задает имя контейнера hello1, а helloworldconsole
— это имя изображения, которое будет использоваться для создания контейнера.
docker run --name hello1 helloworldconsole
Шаг 6.Вывод из консольного приложения будет сохранен в журналах Docker. Вы можете просмотреть сообщения журнала, используя команду docker log с именем контейнера.
docker logs hello1
Шаг 7.Контейнер hello1 можно остановить с помощью команды cocker stop с именем контейнера. Чтобы убедиться, что контейнер остановлен, выполните команду docker container ls.
docker stop hello1 docker container ls
Краткое содержание
В этой статье мы создали образ Docker под названием helloworldconsole
. Затем, используя образ helloworldconsole
, мы создали док-контейнер под названием hello1. Контейнер запускал консольное приложение HelloWorldConsole.exe. Мы просмотрели вывод консольного приложения с помощью журналов докеров, а затем остановили контейнер с помощью команды docker stop.