Одним из основных преимуществ Docker является то, что он позволяет запускать программные проекты без необходимости настраивать сложные среды разработки.
Это руководство покажет вам, как создать Docker-образ веб-API .NET 5. Затем вы можете использовать образ для запуска внутреннего кода с любого ПК, на котором установлен Docker, и взаимодействия с API из интерфейсного веб-проекта или мобильного приложения.
Создание веб-API .NET 5
И Docker, и .NET 5 являются кроссплатформенными и имеют открытый исходный код, поэтому вы можете следовать этому руководству независимо от того, используете ли вы macOS, Windows или Linux.
Используйте интерфейс командной строки dotnet для создания проекта веб-API ASP.NET с помощью следующей команды:
dotnet new webapi -o aspdockerapi
Приведенная выше команда создает проект с именем аспдокерапи и помещает его в папку с таким же именем. Кроме того, приложение предоставляет контроллеру API некоторые образцы данных прогноза погоды.
Примечание: Если на вашем компьютере не установлен .NET 5, вы можете скачать его по ссылке ниже.
Скачать: .NET 5 для Windows, macOS и Linux
После создания проекта вы можете перейти в корневую папку проекта, используя следующую команду.
cd aspdockerapi
Вы можете запускать и обслуживать веб-API, используя команду ниже.
dotnet run
По умолчанию приложение будет обслуживаться через порт 5001. Вы можете просмотреть образцы данных приложения в своем браузере по следующему URL-адресу: https://localhost: 5001 / прогноз погоды и данные API должны выглядеть, как показано ниже.
Учить больше: Что такое API?
Инструкции по созданию образа Docker
Чтобы создать образ Docker, вам необходимо дать Docker Engine некоторые инструкции по его созданию. Эти инструкции следует поместить в файл с именем Dockerfile. Обратите внимание, что у файла нет расширения.
Используйте следующую команду для создания Dockerfile в корневой папке проекта приложения.
коснитесь Dockerfile
После создания Dockerfile, структура папок ваших проектов должна быть аналогична приведенной ниже:
Теперь скопируйте и вставьте приведенный ниже код в свой Dockerfile.
ОТ mcr.microsoft.com/dotnet/aspnet: 5.0-focal AS base
WORKDIR / приложение
ЭКСПОЗИЦИЯ 80
ИЗ mcr.microsoft.com/dotnet/sdk: 5.0-focal AS build
WORKDIR / src
КОПИРОВАТЬ ["aspdockerapi.csproj", "./"]
ЗАПУСТИТЬ dotnet restore "./aspdockerapi.csproj"
КОПИРОВАТЬ. .
РАБОЧИЙ КАТАЛОГ "/ src /."
ЗАПУСТИТЬ dotnet build "aspdockerapi.csproj" -c Release -o / app / build
ИЗ сборки КАК опубликовать
RUN dotnet publish "aspdockerapi.csproj" -c Release -o / app / publish
ИЗ БАЗОВОГО КАК финал
WORKDIR / приложение
КОПИРОВАТЬ --from = publish / app / publish.
ENTRYPOINT ["dotnet", "aspdockerapi.dll"]
Примечание: В Dockerfile выше имена проекта и dll aspdockerapi.csproj а также aspdockerapi.dll соответственно, если у вашего проекта другое имя, обязательно обновите свой Dockerfile с правильными именами.
Понимание инструкций Dockerfile
В Dockerfile в основном состоит из ключевых слов Dockerfile, которые по соглашению представляют собой слова с заглавными буквами. Ключевые слова определяют инструкцию для выполнения на каждом уровне образа Docker. Ниже приведены основные ключевые слова Docker, которые используются в приведенном выше файле Docker.
1. ИЗ
В ИЗ ключевое слово определяет базовое изображение, на котором мы хотим построить наше изображение. В приведенном выше файле Dockerfile исходный базовый образ - это образ .NET 5 от Microsoft. Базовый образ .NET 5 содержит необходимые компоненты для запуска приложения.
2. WORKDIR
WORKDIR устанавливает рабочий каталог или контекст внутри изображения. В этом примере /app каталог назначается в качестве корневого рабочего каталога по умолчанию с помощью следующего оператора WORKDIR / приложение.
3. КОПИРОВАТЬ
В КОПИРОВАТЬ ключевое слово просто копирует контент из одной папки и помещает его в другую. В этом примере он изначально используется для копирования основного файла проекта, то есть аспдокерапи.csproj в рабочий каталог изображений.
4. ЗАПУСТИТЬ
В ЗАПУСТИТЬ ключевое слово используется для запуска определенной команды Linux в образе Docker. в Dockerfile выше, ЗАПУСТИТЬ Команда используется для восстановления зависимостей, сборки проекта ASP.NET и публикации проекта.
5. CMD
В CMD ключевое слово немного похоже на ЗАПУСТИТЬ ключевое слово, обсужденное выше. Он также используется при запуске команды Linux, но в отличие от ЗАПУСТИТЬ ключевое слово, которое запускает команды для построения изображения, CMD ключевое слово используется для запуска команд Linux при запуске образа в экземпляре контейнера.
6. EXPOSE
В РАЗОБЛАЧАТЬ ключевое слово используется для открытия порта внутри образа Docker внешнему миру. В этом случае изображение предоставляет порт 80, который используется для предоставления доступа к API при запуске контейнера Docker.
Создание образа Docker
Чтобы создать образ Docker на основе Dockerfile, просто запустите следующую команду в корневой папке проекта, то есть там, где Dockerfile размещен.
docker build -t dockerwebapi -f Dockerfile.
Команда выше помечает образ Docker именем dockerwebapi а также указывает, что инструкции по созданию этого изображения находятся в Dockerfile.
После завершения создания образа вы можете проверить, указан ли он как локальный образ Docker, с помощью следующей команды:
образы докеров
Вывод команды выше должен быть аналогичен приведенному ниже, а изображение (dockerwebapi) появляется в первой строке в этом случае.
Если на вашем компьютере не установлен Docker, вот как установить докер на Ubuntu Linux, в противном случае используйте ссылку ниже, чтобы загрузить и установить Docker.
Скачать: Руководство по загрузке и установке Docker
Запуск образа Docker
Чтобы запустить только что созданный образ Docker, используйте следующую команду. В -ti опция указывает, что изображение должно запускаться в интерактивном режиме терминала, и --рм указывает, что контейнер должен быть удален сразу после его выхода.
docker run -ti --rm -p 8080: 80 dockerwebapi
Кроме того, команда указывает, что контейнер Docker должен работать на HTTP-порту 8080, который отображается на порт 80 внутри contianer.
Перейдите по URL-адресу: http://localhost: 8080 / WeatherForecast в вашем браузере, и вы обнаружите, что ваши данные API обслуживаются из экземпляра Docker, который вы используете.
Зачем использовать Docker?
В этом руководстве показано, как создать Docker-образ веб-API .NET 5.
С помощью Docker вы можете автоматизировать развертывание приложений, упростить настройку сред разработки программного обеспечения и упростить сотрудничество с другими разработчиками программного обеспечения.
Docker также предлагает несколько преимуществ по сравнению с другими технологиями виртуализации, поэтому вам, вероятно, следует рассмотреть возможность его использования в своих проектах разработки программного обеспечения.
Docker имеет множество преимуществ по сравнению с виртуальной машиной, и есть причины начать использовать его сегодня.
Читать далее
- Программирование
- Веб-разработка
- Докер
- ASP.NET
Мвиза занимается разработкой программного обеспечения по профессии и много пишет о Linux и интерфейсном программировании. Некоторые из его интересов включают историю, экономику, политику и архитектуру предприятий.
Подписывайтесь на нашу новостную рассылку
Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!
Еще один шаг…!
Пожалуйста, подтвердите свой адрес электронной почты в электронном письме, которое мы вам только что отправили.