Я хочу ssh
подключиться к удаленному серверу, на котором работает механизм Docker, а затем docker exec
к bash
в my-nice-container
в интерактивном режиме. Я хочу сделать все одним махом.
Я делаю это со своего локального компьютера:
ssh my-site-with-a-docker-engine.example.com docker exec -it my-nice-container bash
Я получаю эту ошибку :"устройство ввода не является TTY"
Вопрос:Как я могу заставить ssh
уведомить другой сторона, что мы действительно интерактивный терминал?
Примечание 1:
Если я делаю эту команду "разделенной", она работает:
- Сначала я
ssh
,- затем изнутри
ssh
я набираю -вdocker exec
.
Примечание 2.:
Не-неинтерактивные команды работают хорошо. Например, это работает:
ssh ubuntu@docker-engine-6faeab.hellotripworld.com docker ps -a
Найдено. Это было -t
. Первый взгляд на справочную страницуhttps://linux.die.net/man/1/sshи поиск слов «терминал» и «интерактивный» не помогли, поэтому я и спросил.
Затем я обнаружил, что «-t
Принудительное выделение псевдо-tty».
Проверено на работоспособность:
ssh -t my-site-with-a-docker-engine.example.com docker exec -it my-nice-container bash