Как установить движок docker -в macOS без рабочего стола docker?

Команды 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(, поскольку tmux2.4, split-paneи splitpявляются синонимами для split-window).

10
06.09.2021, 21:27
3 ответа

Насколько мне известно, 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.

2
22.09.2021, 15:37

На моем 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"
6
26.09.2021, 16:08

Есть альтернатива докеру, это podman .

  1. Установить:brew install podman
  2. Загрузите и подготовьте виртуальную машину:podman machine init
  3. Включить ВМ:podman machine start
  4. Используется как докер:podman run -d -p 8000:80 nginx
  5. Проверка контейнера:podman ps
  6. Взаимодействуйте с ним:curl localhost:8000

Он использует QEMU для виртуализации и устанавливает машину с Fedora CoreOS по умолчанию.

Для доступа к сведениям о машине по умолчанию и среде виртуализации после установки:

cat ~/.config/containers/podman/machine/qemu/podman-machine-default.json

10
07.10.2021, 03:51

Теги

Похожие вопросы