Docker windows и linux - PullRequest
       70

Docker windows и linux

1 голос
/ 25 февраля 2020

Docker в моем системном трее есть пункт меню Переключиться на Linux / Windows контейнеры .

Что это должно быть?

Я не нужно Windows, потому что я пишу. NET Ядро и использование SQL Сервер Express.

Как узнать, если Docker, что я хочу использовать (например, mcr.microsoft.com/dotnet/core/runtime:3.1-nanoserver-1903 или mcr.microsoft.com/dotnet/core/runtime:3.1 или mcr.microsoft.com/mssql/server) равно Linux или Windows?

1 Ответ

0 голосов
/ 27 февраля 2020

Многие изображения будут задокументированы для какой ОС они предназначены для docker хаба или в своей документации. Например, mcr.microsoft.com/mssql/server цели Linux, поэтому вам необходимо запустить среду Linux Containers (перейдите к разделу «Полный список тегов»).


Подробнее Программное c решение: вы можете просматривать изображения, чтобы узнать о них больше из вашей оболочки, если вы ранее их извлекли. Например, если я проверяю образ IIS, например mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2019, мы видим, что он построен для Windows на процессорах amd64.

Вы можете проверить изображение с помощью docker image inspect из командной строки.

docker image inspect mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2019

Результатом будет большой json шарик, описывающий проверенные вами изображения:

[
  {
    ...I've left out a lot of other details here
    "Architecture": "amd64",
    "OS": "windows",
    "OsVersion": "10.0.17763.973",
    ...
  }
]

Для ответа о том, какие типы контейнеров вы должны запускать, вам нужно посмотреть значение «OS» - в моем примере это «windows», поэтому нам потребуется поддержка Windows Containers и возникнет ошибка, если мы попытаемся развернуть контейнер в среде linux.

To упростите эту команду и избавьте вас от необходимости копаться в файле json, в который вы можете включить --format flag . Например:

docker image inspect mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2019 --format='{{json .Os}}'

В моем примере я также включил "OSVersion", это особенно важно при рассмотрении совместимости контейнеров Windows с версией хоста Windows. Вы можете узнать больше о Windows Совместимость контейнеров в документации. Это значение менее важно для контейнеров на основе linux и может присутствовать не на всех изображениях.

...