Лаксман Сахни
6 июля 2018 г. · чтение 6 мин.
Контейнеры и микросервисы — это два огромных , новые тенденции в разработке программного обеспечения сегодня.
Контейнеры — отличный способ упаковать ваше приложение, его зависимости и конфигурацию в переносимый, легко распространяемый файл образа. Образ контейнера — это легкий автономный исполняемый пакет программного обеспечения, который включает в себя все необходимое для его запуска: код, среду выполнения, системные инструменты, системные библиотеки, настройки. Контейнеры — это абстракция на уровне приложения, которая объединяет код и зависимости.
Микросервисы представляют собой архитектурный стиль, в котором система может быть разбита на отдельные службы, каждая из которых обладает единственной узконаправленной возможностью, которая предоставляется с помощью API для остальной части системы, а также для внешних потребителей, таких как веб-приложения и мобильные приложения.
Требования к программному обеспечению
- Операционные системы : macOS (64-разрядная) Sierra
- .NET Core SDK 2.1
- Visual Studio Code 1.2x
В Docker уже есть отличная документация о том, как установить Docker на ваш компьютер с MacOS:
- Зарегистрируйтесь в Docker Магазин для загрузки.
- Загрузить из Docker Store ➜ Переместить в папку приложений ➜ Двойной щелчок.
- Открыть терминал и проверить версии
docker version
вы можете запустить свой первый контейнер с команда ниже:
docker run hello-world
Поддержка Docker для VS Code обеспечивается расширением. Чтобы установить расширение Docker, откройте представление «Расширения», нажав ⇧⌘X, и найдите docker
, чтобы отфильтровать результаты. Выберите расширение Microsoft Docker.
Выберите «Да», чтобы отобразить предупреждающее сообщение «Необходимые ресурсы для сборки и отладки отсутствуют в DockerApi. Добавить их?»
На этом этапе мы немного отойдем от кода, чтобы внедрить Docker в наше решение и рабочий процесс.
Docker — очень популярная контейнерная платформа, которая позволяет легко упаковывать, развертывать и использовать приложения и сервисы. С помощью Docker вы можете создавать образы, задавая пошаговые команды, необходимые для создания образа в Dockerfile
. Dockerfile — это просто текстовый файл, содержащий инструкции по сборке.
VS Code понимает структуру Dockerfiles, а также доступный набор инструкций, поэтому вы получаете отличный опыт при создании этих файлов.
- Создайте новый файл в своей рабочей области с именем
Dockerfile
2. Нажмите ⌃Space, чтобы открыть список фрагментов, соответствующих допустимым командам Dockerfile
. Нажатие кнопки «i» Подробнее … справа покажет всплывающее окно с подробностями и ссылкой на документацию Docker Online.
Удалить вновь созданный Dockerfile
.
Написание файлов Docker и docker-compose вручную может быть сложным и трудоемким. Чтобы помочь вам, VS Code может сгенерировать необходимые файлы Docker для вашего проекта. В палитре команд (⇧⌘P) запустите команду Docker: Добавить файлы Docker в рабочую область, чтобы сгенерировать Dockerfile
, docker-compose.yml
и docker-compose.debug.yml
файлы для вашего типа рабочей области. NET Core:
После добавления файлов Docker в рабочую область с помощью команды в палитре команд (⇧⌘P) для вашего типа рабочей области .NET Core, он создает файл Dockerfile путем извлечения последней версии контейнера Microsoft ASP.NET Core из концентратора Docker.
FROM microsoft/dotnet: 2.1-sdk AS build-envWORKDIR/app # Скопируйте csproj и восстановите как отдельные слоиCOPY * .csproj ./RUN dotnet restore # Скопируйте все остальное и buildCOPY. ./RUN dotnet publish -c Release -o out # Сборка среды выполнения imageFROM microsoft/dotnet: 2.1-aspnetcore-runtimeLABEL Имя = dockerapi Version = 0.0.1WORKDIR/appEXPOSE 80COPY --from = build-env/app/out .ENTRYPOINT dotnet DockerApi .dll
Имя сборки в ENTRYPOINT чувствительно к регистру. Ваш контейнер — это контейнер Linux, работающий на хосте macOS. Платформа Docker изначально работает в Linux. Linux чувствителен к регистру. Вы должны убедиться, что имя сборки в ENTRYPOINT должно совпадать с именем сборки в папке bin Debug
.
Давайте разберемся, о чем говорит скрипт.
- Используйте стандартный Microsoft Контейнер ASP.NET Core из концентратора Docker
- Пометить контейнер как dockerapi и версию 0.0.1
- Скопируйте наш опубликованный код из папки «/app/out» в корневая папка в нашем контейнере,
- Открыть порт 80 для трафика веб-API,
- Запустить приложение dotnet из контейнера.
Чтобы сделать контекст сборки как можно меньше, добавьте файл .dockerignore
в папку проекта и скопируйте в него следующее.
bin
obj
- Откройте интегрированный терминал VS Code и перейдите в папку вашего проекта.
- Используйте следующую запятую. nds для сборки и запуска образа Docker:
Сначала для сборки контейнера:
$ docker build -t dockerapi.