Мне кажется, здесь есть две основные цели.Сначала поймите, что действительно делает докер и как он работает.Во-вторых, система, которая описывает всю систему.
Позвольте мне сделать краткое и краткое введение.Я не буду вдаваться в подробности, но в основном docker - это платформа, которая работает как виртуализация системы, которая позволяет изолировать процесс, операционную систему или целое приложение без какого-либо гипервизора.Контейнер разделяет ядро хост-системы, и все, что он содержит, является изолированным от хоста и остальных контейнеров.
Итак, основной принцип, который вы ищете, - это система, которая управляет контейнерами с ssh-сервером с открытым портом 22.Хотя существует множество способов достижения этой цели, одним из способов может быть этот образ сервера Docker sshd .
docker run -itd --rm rastasheep/ubuntu-sshd bash
- Докеру нужен процесс, чтобы поддерживать работу,Используя -it , вы создаете интерактивный сеанс с интерпретатором bash.Это сохранит работоспособность контейнера, а также позволит запустить терминал bash внутри изолированного виртуального сервера Ubuntu.
- - rm : удалит контейнер, как только вы окажетесь в нем.
- rastasheep / ubuntu-sshd : это идентификатор образа докера.
Как видите, не хватает системы, которая соединяет ваше приложение с этимДокерская платформа.Одним из подходов было бы использование библиотеки , которая есть в Python, которая использует докерский клиент программно.В качестве совета я бы порекомендовал вам установить docker на ваш компьютер и попытаться создать пару серверов Ubuntu с ssh-сервером и подключиться к нему с вашего хоста.Это поможет вам понять, действительно ли необходимо иметь sshd-сервер, сетевые реквизиты, которые вам понадобятся, если это так, для передачи всех клиентов в контейнеры.Прочтите официальную документацию по сети Docker .
В примере, который я описал, запускается новый свежий терминал, и нет необходимости подключаться к докеру через ssh.Используя этот способ, вам не нужно будет направлять трафик, определять свободные порты хоста для подключения вашего хоста к контейнерам или для проверки и завершения работы контейнера после завершения соединения.В противном случае контейнер будет оставаться живым.
Существует много способов, с помощью которых можно создать вашу систему, и я настоятельно рекомендую вам начать с создания некоторых контейнеров с помощью инструмента Docker и начать понимать, как он работает.