Невозможно `ssh` и `docker exec` в одной команде

Я хочу 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:

Если я делаю эту команду "разделенной", она работает:

  1. Сначала я ssh,
  2. затем изнутри sshя набираю -в docker exec.

Примечание 2.:

Не-неинтерактивные команды работают хорошо. Например, это работает:

ssh ubuntu@docker-engine-6faeab.hellotripworld.com docker ps -a
0
задан 11 November 2021 в 17:39
1 ответ

Найдено. Это было -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
0
ответ дан 11 November 2021 в 17:47

Теги

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