Linux Virtual Machines on MacOS
Dec. 1st, 2024 11:20 amParallels Desktop конечно очень хорош, может запускать полноценную VM даже с иксами.
Но если нужно запустить на Маке text mode Linux, я пока не нашёл ничего лучше OrbStack. Это не полноценная VM, как Parallels или VirtualBox c (пара)виртуализацией железа, а нечто ближе к Debootstrap или WSL. Но это настоящая Ubuntu, Centos, Gentoo etc (OrbStack предлагает выбор из 16 дистрибутивов линукса). Файловая система VM при этом доступна с MacOS хоста и наоборот, можно файлы легко копировать в/из VM. Если установить внутри VM сетевое ПО, например NGiNX или Kubernetes с ингрессом, все слушающие порты будут слушать на localhost Мака. Можно выполнять команды Linux из MacOS и наоборот с помощью утилит
Зачем нужен text mode Linux на Маке, если MacOS это UNIX-подобная ОС и для нее есть Homebrew?
Если вы много занимаетесь администрированием Linux, то отличия CLI Linux и MacOS (которая BSD) будут вам доставлять постоянное неудобство, в том числе при написании скриптов, сравните хотя бы ключи команды
Внутри OrbStack можно запустить настоящий линуксовый docker и Kubernetes, например Kind. Зачем Kind, если для MacOS есть 1) Docker Desktop и 2) Kubernetes встроенный в OrbStack? А затем, что оба они однонодовые, если же нужен multi-node cluster (например потестировать node affinity), надо ставить Kind или K3d.
Виртуальных машин OrbStack можно сделать сколько угодно с разными дистрибутивами Linux, например для любителей пакетного менеджера pacman есть Arch. Файлы с одной VM на другую можно копировать через
Из недостатков:
1. Клонировать VM нельзя. Можно автоматизировать настройку новой VM, поддерживается Cloud-init, но мне проще ansible-pull.
2. Иксовые приложения внутри VM просто так не запустишь, но в документации пишут, что можно, если в качестве X-сервера запустить XQuartz на Маке, или Xrdp. Ну или если у вас в сети есть X-terminal, наверное можно $DISPLAY туда отправить, я не пробовал за ненадобностью.
3. USB устройства внутрь VM пока не пробрасываются.
Но если нужно запустить на Маке text mode Linux, я пока не нашёл ничего лучше OrbStack. Это не полноценная VM, как Parallels или VirtualBox c (пара)виртуализацией железа, а нечто ближе к Debootstrap или WSL. Но это настоящая Ubuntu, Centos, Gentoo etc (OrbStack предлагает выбор из 16 дистрибутивов линукса). Файловая система VM при этом доступна с MacOS хоста и наоборот, можно файлы легко копировать в/из VM. Если установить внутри VM сетевое ПО, например NGiNX или Kubernetes с ингрессом, все слушающие порты будут слушать на localhost Мака. Можно выполнять команды Linux из MacOS и наоборот с помощью утилит
orb
и mac
соответственно.Зачем нужен text mode Linux на Маке, если MacOS это UNIX-подобная ОС и для нее есть Homebrew?
Если вы много занимаетесь администрированием Linux, то отличия CLI Linux и MacOS (которая BSD) будут вам доставлять постоянное неудобство, в том числе при написании скриптов, сравните хотя бы ключи команды
date
. Конечно, если использовать из MacOS только Терминал для ssh-доступа в облако, то никакой OrbStack не нужен, и даже Homebrew не нужно.Внутри OrbStack можно запустить настоящий линуксовый docker и Kubernetes, например Kind. Зачем Kind, если для MacOS есть 1) Docker Desktop и 2) Kubernetes встроенный в OrbStack? А затем, что оба они однонодовые, если же нужен multi-node cluster (например потестировать node affinity), надо ставить Kind или K3d.
Виртуальных машин OrbStack можно сделать сколько угодно с разными дистрибутивами Linux, например для любителей пакетного менеджера pacman есть Arch. Файлы с одной VM на другую можно копировать через
/mnt/machines
.Из недостатков:
1. Клонировать VM нельзя. Можно автоматизировать настройку новой VM, поддерживается Cloud-init, но мне проще ansible-pull.
2. Иксовые приложения внутри VM просто так не запустишь, но в документации пишут, что можно, если в качестве X-сервера запустить XQuartz на Маке, или Xrdp. Ну или если у вас в сети есть X-terminal, наверное можно $DISPLAY туда отправить, я не пробовал за ненадобностью.
3. USB устройства внутрь VM пока не пробрасываются.