Команды new-session
и split-pane
в tmux
принимают команду для запуска в новой панели. Если у вас есть список из user@server
строк в массиве, вы можете сделать это:
#!/bin/bash
ssh_list=( user1@server1 user2@server2... )
split_list=()
for ssh_entry in "${ssh_list[@]:1}"; do
split_list+=( split-pane ssh "$ssh_entry" ';' )
done
tmux new-session ssh "${ssh_list[0]}" ';' \
"${split_list[@]}" \
select-layout tiled ';' \
set-option -w synchronize-panes
Это создает список из split-pane
команд, которые разделяют текущую панель и запускают ssh
на один из серверов в списке ssh_list
. Мы создаем по одной такой команде для каждого из перечисленных серверов, кроме первого (, который мы будем использовать с командой new-session
вместо ).
Команда tmux
в конце создает новый сеанс и запускает первую команду ssh
, выполняет все разбиения, переставляет панели в соответствии с компоновкой tiled
(альтернативы см. в руководстве tmux
)и включает синхронизацию панелей.
Сеанс tmux
завершится после завершения всех сеансов ssh
.
Обновление :Интересно, что в tmux(1)
руководстве не упоминается команда split-pane
. Приведенный выше код все еще работает, но если вы используете более старую версию tmux
, вы можете изменить split-pane
на split-window
(, поскольку tmux
2.4, split-pane
и splitp
являются синонимами для split-window
).
Насколько мне известно, docker функционально несовместим с MacOS. У меня есть рабочий стол docker, работающий на моем Macbook, и, насколько мне известно, это достигается за счет рабочего стола docker, создающего виртуальную машину Linux и запускающего в ней механизм Docker.
Это объясняет, почему рабочий стол docker имеет концепцию выделенных ресурсов, включая «размер образа диска», которые не имеют ничего общего с самим движком docker.
Is there a way to install the linux version of docker in macOS?
Нет. Не без виртуальной машины Linux. Это связано с тем, что Docker является оболочкой для пространств имен и cgroups , которые являются концепциями Linux и не реализованы в ядре MacOS.
Поскольку эти две функции являются ядром контейнерной технологии, маловероятно, что вы найдете другие не -решения для докеров, (включая Podman ), которые будут работать либо... , если вы не используете виртуальную Linux-систему. машина.
I don't need any of the features that are exclusive to Docker Desktop®
Может быть, я не знаю ваших потребностей.Но имейте в виду, что вы можете использовать некоторые функции рабочего стола docker, которые вы не осознавали как «функции». Например, монтирование привязки к докеру является основной концепцией в докере, однако, чтобы заставить их работать на вашем Mac, рабочий стол докера также должен взять на себя ответственность за преодоление разрыва между MacOS и виртуальной машиной Linux.
Чтобы запустить собственную виртуальную машину, вы можете использовать гипервизор, такой как Virtualbox , чтобы запустить собственную виртуальную машину Linux на вашем Mac.
На моем Macbook я установил докер через homebrew с помощью
brew install docker docker-compose docker-machine xhyve docker-machine-driver-xhyve
(хотя это было задолго до того, как рабочий стол docker стал не -бесплатным, но я предполагаю, что он все еще будет работать)
Это использует xhyve в качестве виртуальной машины, поэтому в основном используется дистрибутив Linux в xhyve, а затем Docker в этом дистрибутиве Linux.
Вам нужно выполнить небольшую настройку, я следовал этой статье .
Моя командная строка для создания виртуальной машины была
docker-machine create default --driver xhyve --xhyve-experimental-nfs-share=true --xhyve-disk-size "40000"
Есть альтернатива докеру, это podman .
brew install podman
podman machine init
podman machine start
podman run -d -p 8000:80 nginx
podman ps
curl localhost:8000
Он использует QEMU для виртуализации и устанавливает машину с Fedora CoreOS по умолчанию.
Для доступа к сведениям о машине по умолчанию и среде виртуализации после установки:
cat ~/.config/containers/podman/machine/qemu/podman-machine-default.json