Насколько я понимаю, основным ограничением запуска docker в других ОС были контейнеры Linux Network, которые делали это возможным. (Конечно, для Mac).
Недавно Microsoft анонсировала бета-версию пользовательского режима Ubuntu linux, работающего изначально в Windows 10. Это позволяет запускать двоичные файлы, скомпилированные в формате ELF в Windows (в отличие от cygwin, который требует компиляции).
Мой вопрос: можете ли вы запускать Docker изначально в новом пользовательском пространстве Windows 10 (Ubuntu) bash?
bash
пользовательское пространство. Это реальное, достаточно полное пользовательское пространство Linux, но без X Windows, то есть только с текстом. Говоря «bash», достаточно хорошо передает текстовое ограничение ..Ответы:
Вы можете использовать Docker Desktop для Windows в качестве движка и Docker для Linux в качестве клиента в WSL на Ubuntu / Debian на Windows. Подключите их через TCP.
Установите Docker Desktop для Windows: https://hub.docker.com/editions/community/docker-ce-desktop-windows Если вы хотите использовать контейнеры Windows вместо контейнеров Linux, оба контейнера типов могут управляться клиентом Docker Linux в пользовательское пространство bash.
Начиная с версии 17.03.1-ce-win12 (12058) вы должны установить флажок « Демон Expose» на tcp: // localhost: 2375 без TLS, чтобы позволить клиенту Docker Linux продолжить связь с демоном Windows Docker по TCP
Следуй этим шагам:
или же
Чтобы сделать его постоянным:
Добавьте соответствующие переменные в .bashrc
Конечно, вы можете установить docker-compose
Или используя Python Pip
И завершение Bash. Лучшая часть:
Я протестировал его, используя версию Docker Desktop 2.1.0.1 (37199) с использованием Hyper-V:
тома
Будьте осторожны при добавлении томов. Путь
C:\dir
будет виден как/mnt/c/dir
на WSL, так и/c/dir/
на движке докера. Вы можете преодолеть это навсегда:Вы должны выйти и перезагрузить WSL после внесения изменений в wsl.conf, чтобы WSL считывал ваши изменения при запуске.
ОБНОВИТЬ
От: Что нового для командной строки в Windows 10 версии 1803
ОБНОВИТЬ
Этот сценарий и использование Unix сокетов были включены в Pengwin pengwin-установке «s.
С уважением
источник
docker.exe
непосредственно для запроса / взаимодействия с подсистемой Docker. Однако обратите внимание, что докер для Windows будет использовать переменные и конфигурации Windows.На данный момент (апрель 2016 г.) ответ таков:
Мы еще не знаем (но, вероятно, нет).
Факты
Спекуляция
Таким образом, вопрос заключается в том, были ли реализованы системные вызовы, которые нужны Docker (среди прочего, для chroot и пространств имен). Ответ на это, скорее всего, "нет". Docker требует довольно сложной (и специфичной для Linux) функциональности для управления процессами и ресурсами, а также для изоляции процессов. Хотя, вероятно, возможно воспроизвести все это в Windows, это будет много работы, и, поскольку цель этой функции Windows, похоже, заключается в запуске программ пользовательского пространства Linux, кажется маловероятным, что они сделали всю работу (и держали ее в секрете) ,
Однако, насколько я могу судить, точной информации в любом случае нет.
Существующие порты Docker
Конечно, если Microsoft решит, что им нужна поддержка Docker в Windows 10, они, вероятно, смогут ее предложить. Есть некоторый прецедент для портирования Docker на другое ядро:
источник
Первый предварительный просмотр был опубликован вчера. Я попытался установить Docker, но это не удается из-за следующего:
Таким образом, кажется, что для первого предварительного просмотра в настоящее время он не работает. Однако, как полагают многие, это может сработать в будущем выпуске.
источник
docker ps
Get http:///var/run/docker.sock/v1.18/containers/json: dial unix /var/run/docker.sock: setsockopt: invalid argument. Are you trying to connect to a TLS-enabled daemon without TLS?
Нет, это невозможно.
Docker нужно несколько вещей для запуска контейнеров:
Это все функции ядра, которые реализованы в Linux. К сожалению, большинство из них не имеют аналогичной функции в Windows для использования в качестве замены (ни в подсистеме Linux, которую Microsoft реализовала в ядре Windows). Все это должно быть предоставлено ОС.
источник
chroot
, поймите, что среда Ubuntu уже имеет другой корень, чем WIN32.Начиная с обновления Creator (опубликовано 13 июня 2017 г.), вы можете запускать собственный исполняемый файл Windows непосредственно в WSL. Это означает, что если вы уже установили Docker для Windows, вы можете просто вызвать
docker
двоичные файлы, установленные вC:\Program Files
. Поскольку они заканчиваются.exe
самым простым вариантом, это создавать псевдонимы. Что-то вроде следующего в вашем.bashrc
должно работать:Это создает псевдонимы для всех файлов в
DOCKER_BIN
каталоге:Одно предупреждение: вы получите сообщение об ошибке типа « Невозможно перевести текущий рабочий каталог », если запустить его из каталога Linux. Просто
cd
в каталог Windows (например/mnt/c/Users/YourUsername
), и вы должны быть хорошими.источник
docker
двоичный файл Windows и просто делаете это через оболочку Linux. Я не уверен, есть ли хороший способ сделать это.Как только Docker 1.12 выпущен и клиент Docker Linux отделен, вы сможете запустить Docker клиент в Windows 10 bash.
Это может показаться не таким уж большим, если у вас есть клиент Docker для Windows, но это полезно, если у вас есть наборы инструментов Linux, которые включают в себя Docker для его функциональности на стороне клиента.
источник
В Windows 10 версии 1607 Build 1493.10 вы можете успешно установить его на Ubuntu Bash, но он не работает :(
Простая «версия докера» скажет вам:
Если вы затем запустите «sudo docker -d», вы получите следующую ошибку:
Так что это определенно пробка со стороны Баша.
Тем не менее, вы можете установить Docker для Windows, и он работает как шарм, вы можете развернуть Linux Servers и все, что вам нужно.
источник
По состоянию на сентябрь 2016 года
Все текущие реализации Docker в Windows используют виртуализацию, Docker 1.12 использует гипервизор в Windows, что устраняет преимущество контейнеризации над виртуализацией.
Docker нужно больше, чем просто использовать системные вызовы Linux.
Ему нужны группы управления процессами (cgroups), наращиваемая файловая система (aufs), а также другие системы на основе Linux вне ядра.
Ни cgroups, ни aufs изначально не включены в ядро Windows 10.
Существует реализация Windows Server 2016 здесь: https://msdn.microsoft.com/en-gb/virtualization/windowscontainers/quick_start/quick_start_windows_server .. но это будет запускать только некоторые службы Windows, например IIS, а не Ubuntu
источник
Docker в настоящее время не работает в текущей сборке (14316) - при условии, что вы можете установить его.
источник
От: https://blog.docker.com/2016/07/docker-for-mac-and-windows-production-ready/
источник