Подтвердить что ты не робот

Могу ли я использовать приложение Windows.Net с Docker?

Я немного запутался во всем чате о Docker и о том, как он вписывается в мир виртуализации. Итак, вот прямой вопрос: могу ли я упаковать приложение .NET(которое обычно работает на Windows 7 и т.д.) Для запуска в контейнере Docker, а затем выполнить его на "любом" хосте, поддерживающем Docker?

ТИА.

4b9b3361

Ответ 1

Не сегодня. В будущем Microsoft и Docker объявили, что у вас будет версия Docker для Windows.

Изменить: более новая информация

Обратите внимание, что базовая платформа и ОС должны соответствовать - то есть сегодня вы можете запускать контейнеры ARM Linux в контейнерах ARM Linux и x64 Linux на x64 Linux, но вы не можете смешивать и сопоставлять. Когда Windows будет добавлена, шаблон будет таким же - вы сможете запускать контейнеры Windows в ОС Windows, но не в Linux. Не без дополнительного уровня виртуализации (например, VirtualBox, VMWare и т.д.).

Изменить: уважать ответ Wine, который я не рассматривал. Это похоже на "дополнительный уровень виртуализации", но на уровне OS API не на аппаратном уровне. И несколько ограничено в рамках поддерживаемых программ .Net.

В аналогичном ключе вы можете запустить свой .Net-код в Docker, используя Mono.

Ответ 2

Docker основывается на Linux. Единственный способ получить приложение .Net в Docker - это использовать Mono для Linux.

Ответ 3

Да, если вы устанавливаете вино и .NET, вот пример такого Dockerfile

https://registry.hub.docker.com/u/justmoon/wix/dockerfile/

Экстракт

# Install .NET Framework 4.0

RUN wine wineboot && xvfb-run winetricks --unattended dotnet40 corefonts

Ответ 4

Это может быть очень устаревший вопрос, но я думаю, что ему нужно обновление. Да, вы можете использовать докер с ядром .net/.net и полностью поддерживаете в Visual Studio 2017.

https://channel9.msdn.com/Events/Connect/2016/172

Не нужно использовать WINE или Mono.

Ответ 5

Немного поздно, но все равно, если это кому-то поможет. Да, мы можем запускать приложения .Net на Docker, поскольку докеры теперь поддерживаются Windows изначально. Но сначала вы должны проверить свою версию Windows, ваша сборка окон должна быть 14393.233 или выше. Загрузите Docker 1.13.0 или новее, а затем вы можете легко запустить приложение .Net. Этот репозиторий Просматривает пример приложения .Net.

Ответ 6

ниже приведен пример файла docker для запуска приложения .net 4.5

FROM microsoft/iis

RUN ["powershell.exe", "Install-WindowsFeature NET-Framework-45-ASPNET"]
RUN ["powershell.exe", "Install-WindowsFeature Web-Asp-Net45"]

ADD publisedDir/ c:\\website

EXPOSE 8081

RUN powershell New-Website -Name 'websiteName' -Port 8081 -PhysicalPath 'c:\website' -ApplicationPool '.NET v4.5'

ENTRYPOINT powershell