Обычно я хочу открыть оболочку bash на образе докера. Многокомандный процесс для этого будет:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bba983d72d48 scubbo/datenight "apachectl -DFOREGROU" 7 days ago Up 7 days 0.0.0.0:80->80/tcp pensive_bell
$ docker exec -it bba983d72d48 bash
Я хотел бы сократить это. Однако я получаю следующую ошибку:
$ docker ps | awk 'NR > 1 {print $1}' | xargs -I {} docker exec -it {} bash
cannot enable tty mode on non tty input
Немного погуглив, я нашел это проблема - однако, если я отбрасываю опцию -t
, команда немедленно "завершается".
Я подтвердил, что ручное копирование и вставка вывода $ docker ps | awk 'NR > 1 {print $1}'
в соответствующую позицию docker exec -it {} bash
выполняется успешно.
РЕДАКТИРОВАТЬ: Вырезать docker ps
из трубы также не удается:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4f20409c37b7 scubbo/datenight "apachectl -DFOREGROU" 8 days ago Up 8 days 0.0.0.0:80->80/tcp drunk_northcutt
$ docker ps -q
4f20409c37b7
$ echo '4f20409c37b7' | xargs -I {} docker exec -it {} bash
cannot enable tty mode on non tty input