К какому процессу подключается `docker attach`?

Док говорит

docker attach: прикрепите локальные стандартные потоки ввода, вывода и ошибок к работающему контейнеру.

Насколько я понимаю, работающий контейнер может иметь много запущенных процессов, в том числе запущенных с использованием docker exec. Итак, при использовании docker attach к какому именно процессу я подключаюсь?


person Marvis Lu    schedule 11.08.2018    source источник


Ответы (2)


Он должен скорее подключаться к стандартному вводу, выводу и ошибкам терминала подключения, отображая текущий вывод или интерактивно управлять процессом ENTRYPOINT/CMD.

Так что не похоже, чтобы это было связано с конкретным процессом.

docker attach добавляет:

Вы можете подключиться к одному и тому же автономному процессу несколько раз одновременно из разных сеансов на хосте Docker.

Тем не менее, тот же процесс.

person VonC    schedule 11.08.2018

Какой бы процесс ни имел pid 1 в контейнере. Если изображение объявило ENTRYPOINT в Dockerfile (или если вы docker run --entrypoint ...), это та программа; если нет, то это команда, переданная в командной строке docker run, или в файле Dockerfile CMD.

person David Maze    schedule 11.08.2018
comment
Есть ли способ подключиться к определенному процессу в контейнере? Например, если я docker запускаю процесс bash, но забываю добавить флаг -it, могу ли я подключиться к bash позже? Если нет, то процесс bash все еще будет работать в контейнере, пока я не убью его вручную, верно? - person Marvis Lu; 12.08.2018