Работа с Docker в Visual Studio Code

Работа с Docker в Visual Studio Code
На чтение
32 мин.
Просмотров
22
Дата обновления
11.11.2024

Лаксман Сахни

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, а также доступный набор инструкций, поэтому вы получаете отличный опыт при создании этих файлов.

  1. Создайте новый файл в своей рабочей области с именем 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 .

Изображение для сообщения

Давайте разберемся, о чем говорит скрипт.

  1. Используйте стандартный Microsoft Контейнер ASP.NET Core из концентратора Docker
  2. Пометить контейнер как dockerapi и версию 0.0.1
  3. Скопируйте наш опубликованный код из папки «/app/out» в корневая папка в нашем контейнере,
  4. Открыть порт 80 для трафика веб-API,
  5. Запустить приложение dotnet из контейнера.

Чтобы сделать контекст сборки как можно меньше, добавьте файл .dockerignore в папку проекта и скопируйте в него следующее.

 bin   
obj
  1. Откройте интегрированный терминал VS Code и перейдите в папку вашего проекта.
  2. Используйте следующую запятую. nds для сборки и запуска образа Docker:

Сначала для сборки контейнера:

 $ docker build -t dockerapi. 

 Изображение для сообщения

Изображение для сообщения

0 Комментариев
Комментариев на модерации: 0
Оставьте комментарий