Я создаю Docker-контейнер с образом Ubuntu: 16.04, используя пакет Python Docker.Я передаю tty как True и отсоединяю как True к функции client.containers.run ().Контейнер начинается с / sbin / init процесса.Контейнер успешно создан.Но проблема в том, что приглашение на вход в систему на моем хост-компьютере заменяется приглашением на вход в контейнер на консоли моего хост-компьютера.В результате я не могу войти в систему на машине на консоли.SSH-подключение к машине работает нормально.
Это происходит, даже когда я запускаю свой скрипт на python после подключения SSH к машине.Я пробовал разные варианты, такие как установка tty в False, установка stdout в False, установка переменной среды TERM для xterm в контейнере, но ничего не помогло.
Было бы очень здорово, если бы кто-то мог предложить решение этой проблемы.
Мой сценарий очень прост:
import docker
client = docker.from_env()
container = client.containers.run('ubuntu:16.04', '/sbin/init', privileged=True,
detach=True, tty=True, stdin_open=True, stdout=False, stderr=False,
environment=['TERM=xterm'])
Я не использую никакой файл Docker.
Мне удалось выяснить, что эта проблема возникает при запуске контейнерав привилегированном режиме.Если я сделаю это, процесс / sbin / init запустит процессы / sbin / agetty, что приведет к подключению / dev / tty к контейнеру.Мне нужно найти способ запустить / sbin / init так, чтобы он не создавал процессы / sbin / agetty.