Windows в docker |
Здравствуйте, гость Вход | Регистрация
Наши новости:
|
| ! | В разделе запрещено создавать темы связанные с раскруткой игровых серверов |
|
|
Windows в docker |
Gecko
|
23.4.2024, 0:20
Сообщение
|
|
|
Репозиторий:
https://github.com/dockur/windows Обзор: Windows в docker обзор на русском )) Пример использования - docker-compose: Код version: "3" services: windows: image: dockurr/windows container_name: windows environment: VERSION: "win11" devices: - /dev/kvm cap_add: - NET_ADMIN ports: - 8006:8006 - 3389:3389/tcp - 3389:3389/udp stop_grace_period: 2m restart: on-failure Docker CLI: Код docker run -it --rm --name windows -p 8006:8006 --device=/dev/kvm --cap-add NET_ADMIN --stop-timeout 120 dockurr/windows По умолчанию подключение к контейнеру с виртуальной машиной происходит по VNC на 8006 порту. Как альтернатива можно подключиться по RDP (3389) Как пользоваться? Как выбрать версию Windows? Как подключиться по RDP? Как добавить ядра процессора и оперативную память? Как изменить размер диска? Как изменить место хранения на хостовом диске? Как обмениваться файлами с хостовой машиной? Как установить собственный образ? Как выполнить установку вручную? Как назначить контейнеру индивидуальный IP-адрес? Как Windows может получить IP-адрес от вашего маршрутизатора? Как подключить USB-устройство? - обсуждение проброса GPU Это вполне неплохой вариант использовать QEMU/KVM с дистрибутивами windows. В некоторых аспектах развертывание windows системы более удобное и быстрое. На то чтобы развернуть Windos 7 SP1 мне понадобилось 8 минут на старом пентиуме (рабочий ПК). При чем, всё что нужно, это создать всего 1 файл - docker-compose.yaml Это мой конфиг для пользователя u1 Код version: "3" services: windows: image: dockurr/windows container_name: windows environment: VERSION: "win7" RAM_SIZE: "2G" CPU_CORES: "2" DISK_SIZE: "10G" devices: - /dev/kvm cap_add: - NET_ADMIN ports: - 8006:8006 - 3389:3389/tcp - 3389:3389/udp volumes: - /home/u1/docker/windows/storage:/storage stop_grace_period: 2m restart: on-failure и выполнить Код docker-compose up -d И набрав в браузере 127.0.0.1:8006 - подключаетесь к windows по vnc (ненужно скачивать никакие образы и что-то там настраивать, всё будет выполнено автоматически, основываясь на файлах настройки образа assets/*.xml) Система готова к работе ![]() - особенно полезно развёртывать такие контейнеры на серверах где изначально работает только докер без графической оболочки, в моём случае это та самая ситуация. Дополнительно можно пробросить устройства подключенные через USB. ЗАКОННО ЛИ ЭТО??? (ОТВЕТ В ВИДЕО ПО ССЫЛКЕ)
Отредактировал: Gecko, - 24.4.2024, 22:14
![]() Не отвечаю на ЛС.
|
Поблагодарили 2 раз
|
|
Gecko
|
28.4.2024, 21:19
Сообщение
|
|
|
ssx, Всё верно, это неполноценная замена, это отличная альтернатива. У меня к примеру есть небольшой сервер дома, на котором работает debian 12 и docker (всё остальное работает из под докера), по этому в моём случае этот вариант вполне себе приемлемый. А самое главное можно без особых телодвижений поднять windows и скинуть ссылку для доступа по VNC которую можно открыть прямо в браузере (если это нужно), при этом всё будет отлично работать, будет полноценный доступ по RDP... в данном случае не обязательно скачивать образ винды, есть быстрая автоматическая установка и настройка, а также все инструменты которые даёт докер. А проброс GPU мне вот вообще не нужен. Запускать игровой сервер под виндой в докере с qemu/kvm задача вполне реальная, просадки fps конечно будут, но я думаю что они будут несущественными в отличие от безконтейнерной реализации. USB вообще без проблем пробросить, с GPU нужны знания, в статье есть ссылка на обсуждение где люди пробрасывали GPU. Игровые сервера под винду я не использую, но зато тестировал специализированный клиент-серверный софт который работает с визиографами, а также по серверной части интраоральных сканеров, вариант собрать небольшой сервер и всё запустить из под докера оказался вполне рабочим и очень удобным. Клиентская база на 9GB вполне шутстро работает, хотя сервер довольно требовательный и хорошо может грузить проц при нескольких подключениях. win10 ![]() Так что это отличная алтернатива которую вполне себе можно использовать, даже просто поднять быстро виндовс на локальной машине из под gnu/linux чтобы произвести настройку и отладку к примеру нативной программы видеонаблюдения или как в моём случае работа с древней 1c7. И в любой момент одной командой можно всё это затереть без следов на хостовой машине. ESXi или ProxMox это немного про другое, тут ты выделяешь под инфраструктуру целый/полноценный сервер и уже танцуешь из под конкретной реализации. Для необходимой задачи нужно выбрать правильный инструмент, чтобы тратить меньше ресурсов и делать всё более эффективно и быстро.
Отредактировал: Gecko, - 29.4.2024, 2:30
![]() Не отвечаю на ЛС.
|
Поблагодарили 1 раз
|
|
Gecko
|
29.4.2024, 20:13
Сообщение
|
|
|
ssx, не совсем правильно будет сравнивать Docker и VirtualBoxЕсли сравнивать docker и lxd в контексте данной темы, то я думаю что разница будет не существенная, обе технологии работают с драйвером qemu/kvm. - докер/lxd - всего лишь контейнер, а вот основная магия происходит в гипервизоре и эмуляторе. Я не использую vbox, для этого есть qemu/kvm. - единственный минус, это огромный набор команд который нужно знать и помнить, я для этого использую программу hstr (о которой ты знаешь) и мой скрипт который генерирует команды для конкретного проекта чтобы переменные заранее были заполнены нужными значениями. Пример создания нового тома: Код qemu-img create -f qcow2 vm1.qcow2 10G #создать-диск - команде присваивается комментарий после # Всё что мне нужно это нажать клавишу h или ctrl+r и ввести слово диск и/или создать чтобы перейти к нужной команде для дальнейшего выполнения и изменив значения в ней. По этому на gnu/linux я не использую vbox, хотя эта программа довольно мощная с очень продуманным интерфейсом как gui так и cli. Я выбираю docker как основную технологию контейнеризации которая хорошо поддерживается и на которой уже много завязано - другие подобные технологии это альтернативы которые можно использовать в той или иной ситуации, например используя proxmox. ![]() Не отвечаю на ЛС.
|
Поблагодарили 1 раз
|
|
![]() ![]() |