Рубрики
Uncategorized

Включение поддержки Docker для ASP .NET Основное приложение

Включение поддержки Docker для ASP .NET Основное приложение

Автор оригинала: DhananjayKumar.

Начнем с самых запутанных вопросов, которые будут ходить по контейнерным сервисам —

  • В чем разница между виртуальной машиной и контейнером?
  • Чем Docker для Windows отличается от Docker в Windows?

Контейнер против виртуальной машины

В двух словах, виртуальная машина предоставляет абстрактную машину, которая использует драйверы устройств, ориентированные на абстрактную машину, в то время как контейнер предоставляет абстрактную ОС. Паравиртуализированная среда виртуальных машин предоставляет абстрактный уровень абстракции оборудования (HAL), для которого требуются драйверы устройств, специфичные для HAL. Приложения, работающие в контейнерной среде, совместно используют базовую операционную систему, в то время как системы виртуальных машин могут работать под управлением разных операционных систем. Обычно на виртуальной машине размещается несколько приложений, сочетание которых может со временем меняться по сравнению с контейнером, который обычно имеет одно приложение. Однако можно иметь фиксированный набор приложений в одном контейнере.

1.JPG

Контейнеры обеспечивают ряд преимуществ по сравнению с виртуальными машинами, и наиболее важным из них является низкие накладные расходы контейнеров и, следовательно, возможность быстрого запуска новых контейнеров. Это связано с тем, что запуск базовой ОС в виртуальной машине требует времени, памяти и пространства, необходимого для дискового хранилища виртуальной машины.

Docker для Windows против Docker в Windows

Docker FOR Windows существует уже некоторое время — с момента появления Docker Toolbox и его предшественника, Boot 2 Docker. Docker для Windows — это продукт, предназначенный для запуска контейнеров Linux и Windows в Windows. Он не предназначен для производственной среды, а является лучшим способом начать работу с Docker в системах Windows.

2.JPG

Docker ON Windows вышел в общедоступную версию 26 сентября 2016 года. Docker ON Windows server — это реализация Docker, которая будет работать на Windows Server без каких-либо компонентов Linux. Он предназначен для запуска только контейнеров windows.

3.JPG

Начало работы — установка Docker ToolBox

Docker Toolbox — это установщик для быстрой настройки и запуска среды Docker на старых системах Mac и Windows, которые не соответствуют требованиям нового Docker для Mac и Docker для Windows Приложения. Панель инструментов Docker включает следующие инструменты Docker:

  • Клиент Docker CLI для запуска Docker Engine для создания образов и контейнеров

  • Docker Machine, чтобы вы могли запускать команды Docker Engine из терминалов

  • Docker Compose для выполнения команды docker-compose

  • Kitematic, графический интерфейс Docker

  • Виртуальная машина Oracle VirtualBox

Поскольку демон Docker Engine использует специфические для Linux функции ядра, вы не можете запускать Docker Engine изначально в Windows. Вместо этого необходимо использовать команду Docker Machine, docker-machine, чтобы создать и подключить к небольшой виртуальной машине Linux (Boot2Docker) на вашем компьютере.

https://docs.docker.com/toolbox/overview/

4.png

Вы можете запустить виртуальную машину либо из VM VirtualBox, либо из терминала Docker QuickStart. Из терминала вы можете безопасно удаленно войти в машину, используя протокол SSH, как показано ниже —

$ док-машина ssh

Если у вас несколько машин, вам нужно сначала найти свое «имя машины»:

$ док-машина ls

ИМЯ АКТИВНОЕ СОСТОЯНИЕ ДРАЙВЕРА URL-АДРЕС SWARM DOCKER ОШИБКИ

по умолчанию * virtualbox Running tcp://192.168.99.101:2376 v1.10.2

Вы можете видеть, что по умолчанию используется имя вашего компьютера, и вы можете ssh следующим образом:

$ docker-machine ssh по умолчанию

Когда вы находитесь в деле, это простой случай sudo-ing to root

docker@default:~$ sudo -i

Boot2Docker версии 1.10.2, мастер сборки: 611be10 — Пн Фев 22 22:47:06 UTC 2016

Docker версии 1.10.2, сборка c3959b1

root@default:~#

Добавление Dockerfile в корневой каталог .NET Основное приложение

Теперь давайте создадим ASP .NET Основное приложение. В моем примере я написал контроллер, который принимает LoanKey и GlobalPropertyId и возвращает требуемый период покрытия. Затем добавьте ниже Dockerfile в корневой каталог приложения. Можно также добавить файл Docker, выбрав флажок Docker для Windows в ASP .NET Шаблон основного приложения, как показано ниже —

шаблон. В формате JPG
FROM microsoft/aspnetcore:1.0.1
WORKDIR /app
COPY published ./
ENTRYPOINT ["dotnet", "requiredcoverage.dll"]

Инструкции по запуску приложения

Запустите Docker Terminal и перейдите в корневой каталог расположения приложения:

$ cd "F:\\requiredcoverage"

Выполните следующие действия, чтобы построить, опубликовать и запустить этот пример в контейнере Linux:

$ docker build -t requiredcoverage .
$ dotnet publish -o published
$ docker run -d -p 80:80 requiredcoverage

Проверка контейнера Docker

5.png
6.png
7.png

Просмотр веб-страницы, запущенной из контейнера

Если вы используете контейнер Linux, вы можете просто перейти к http://localhost:80 , чтобы получить доступ к приложению в веб-браузере.

8.png 8 м.

Запуск контейнера docker с новым томом.

$ docker run -d -P —name rslog1 -v/rsvlog1 rsvlog1

Команда для остановки всех контейнеров.

docker stop $(docker ps -a -q)

Оригинал: «https://www.codementor.io/@dhananjaykumar/enable-docker-support-to-asp-net-core-application-xpqs1zvpb»