Автор оригинала: DhananjayKumar.
Начнем с самых запутанных вопросов, которые будут ходить по контейнерным сервисам —
- В чем разница между виртуальной машиной и контейнером?
- Чем Docker для Windows отличается от Docker в Windows?
Контейнер против виртуальной машины
В двух словах, виртуальная машина предоставляет абстрактную машину, которая использует драйверы устройств, ориентированные на абстрактную машину, в то время как контейнер предоставляет абстрактную ОС. Паравиртуализированная среда виртуальных машин предоставляет абстрактный уровень абстракции оборудования (HAL), для которого требуются драйверы устройств, специфичные для HAL. Приложения, работающие в контейнерной среде, совместно используют базовую операционную систему, в то время как системы виртуальных машин могут работать под управлением разных операционных систем. Обычно на виртуальной машине размещается несколько приложений, сочетание которых может со временем меняться по сравнению с контейнером, который обычно имеет одно приложение. Однако можно иметь фиксированный набор приложений в одном контейнере.
Контейнеры обеспечивают ряд преимуществ по сравнению с виртуальными машинами, и наиболее важным из них является низкие накладные расходы контейнеров и, следовательно, возможность быстрого запуска новых контейнеров. Это связано с тем, что запуск базовой ОС в виртуальной машине требует времени, памяти и пространства, необходимого для дискового хранилища виртуальной машины.
Docker для Windows против Docker в Windows
Docker FOR Windows существует уже некоторое время — с момента появления Docker Toolbox и его предшественника, Boot 2 Docker. Docker для Windows — это продукт, предназначенный для запуска контейнеров Linux и Windows в Windows. Он не предназначен для производственной среды, а является лучшим способом начать работу с Docker в системах Windows.
Docker ON Windows вышел в общедоступную версию 26 сентября 2016 года. Docker ON Windows server — это реализация Docker, которая будет работать на Windows Server без каких-либо компонентов Linux. Он предназначен для запуска только контейнеров windows.
Начало работы — установка 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/
Вы можете запустить виртуальную машину либо из 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 Шаблон основного приложения, как показано ниже —
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
Просмотр веб-страницы, запущенной из контейнера
Если вы используете контейнер Linux, вы можете просто перейти к http://localhost:80 , чтобы получить доступ к приложению в веб-браузере.
Запуск контейнера 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»