2016-01-28 15 views
7

Jeśli użyć docker exec odpalić powłokę,dokowanym: ponownie zamocować na `dokowanym procesu exec`

docker exec -ti <CONTAINER> /bin/bash 

można używać Ctrl + p + q Ctrl celu odłączenia tego procesu powłoki. Ta powłoka nadal działa wewnątrz kontenera, ale jak mogę ponownie dołączyć do tej konkretnej powłoki (tej, która została uruchomiona przez docker exec, a nie docker run)?

Odpowiedz

1

docker exec jest przeznaczony do uruchamiania nowych rzeczy w już uruchomionym kontenerze, czy to w powłoce, czy w innym procesie.

docker attach służy do dołączenia do uruchomionego procesu, dzięki czemu można użyć tylko jednego wystąpienia powłoki.

Run ty pojemnik (proces)

docker run -tid --name <CONTAINER> <IMAGE>:<TAG> bin/bash 

Następnie

docker attach <CONTAINER> 

Aby odłączyć Ctrl + p + Ctrl + q

Na tej drodze jo możesz wielokrotnie dołączać i odłączać tylko jedną instancję powłoki

+1

też można użyj narzędzi takich jak 'tmux' lub' screen' i uruchom je wewnątrz kontenera. – vodolaz095

+2

Niestety nie szukałem odpowiedzi. Mogę dołączyć do głównej powłoki bez problemu, jak opisano powyżej. Ale chcę ponownie dołączyć do drugiej powłoki, którą uruchomiłem z 'docker exec', a teraz został odłączony. –

+2

Nie sądzę, że jest to teraz sposób, ponieważ polecenie 'exec' nie jest zaprojektowane do tego –

3

Niestety, nie jest to jeszcze możliwe; patrz this issue on GitHub. Chciałem również tę funkcjonalność, ale w tej chwili wydaje się, że nie ma na to bezpośredniego sposobu.

Zaproponowano obejście problemu, aby zająć się sprawą, w której uzyskujesz dostęp do skrzynki za pośrednictwem ssh i działającym pod numerem docker exec na zdalnym pudełku (lub w przypadku, gdy emulator terminala jest niestabilny i może spowodować awarię) : Always run your docker exec commands inside screen or tmux. Jeśli to zrobisz, za każdym razem, gdy odłączysz się od sesji screen/tmux, możesz ponownie dołączyć do niej później i nadal masz dostęp do komend docker exec. (Ta jest nieco inna niż to, co było suggested by @vodolaz095, ponieważ wiąże się z systemem screen lub tmuxpoza pojemnika, dzięki czemu nadaje się do stosowania w pojemnikach, które nie działają screen/tmux jako swojego głównego procesu)

Powiązane problemy