docker attach în Docker

Containere Docker 1.0+

Conectează terminalul tău la intrarea, ieșirea și erorile procesului principal al unui container care rulează.

Sintaxă comandă
docker attach [opțiuni] <container>

Ce face docker attach

docker attach te leagă direct de procesul principal al containerului (PID 1): vezi ce afișează în timp real și, dacă a fost pornit cu -it, îi poți scrie la intrare. Spre deosebire de docker exec, nu pornește un proces nou, ci se conectează la cel existent.

Atenție la ieșire: Ctrl+C trimite semnalul procesului principal și, de obicei, oprește containerul. Pentru a te deconecta fără să-l oprești, folosește secvența Ctrl+P urmată de Ctrl+Q (doar pentru containere pornite cu -it) sau pornește cu --sig-proxy=false, caz în care Ctrl+C doar te deconectează.

Parametri

Parametru Descriere
--detach-keys Altă secvență de deconectare, de exemplu ctrl-x.
--no-stdin Nu conecta intrarea; doar urmărești ieșirea.
--sig-proxy=false Nu trimite Ctrl+C și alte semnale procesului din container.
Ctrl+P, Ctrl+Q Secvența implicită de deconectare fără oprire.

Exemple

Exemplul 1: Revenirea la un shell interactiv lăsat în fundal

Pornim un container Python interactiv, ne deconectăm cu Ctrl+P Ctrl+Q și revenim mai târziu la aceeași sesiune.

docker run -dit --name consola python:3.13-slim python
docker attach consola
>>> pret = 1200
>>> pret * 1.21

Ieșire în terminal

1452.0

Exemplul 2: Urmărirea ieșirii fără risc de oprire

Cu --sig-proxy=false, Ctrl+C te deconectează, iar serviciul continuă să ruleze.

docker attach --no-stdin --sig-proxy=false web-iasi

Ieșire în terminal

172.17.0.1 - - [25/Oct/2026:10:12:03 +0000] "GET / HTTP/1.1" 200 615 "-" "curl/8.14.1" "-"
172.17.0.1 - - [25/Oct/2026:10:12:07 +0000] "GET /cos HTTP/1.1" 404 153 "-" "curl/8.14.1" "-"
^C

Greșeli frecvente

  • Ieșirea cu Ctrl+C dintr-un server la care te-ai atașat: îl oprești. Pentru doar a citi jurnalele, docker logs -f este mai sigur.
  • Folosirea docker attach pentru a rula comenzi de depanare: dacă procesul principal nu e un shell, nu ai unde să scrii. Folosește docker exec -it container sh.

Comenzi înrudite

  • docker create: Creează un container cu toate setările lui, fără să-l pornească; îl pornești mai târziu cu docker start.
  • docker pause / docker unpause: Îngheață toate procesele unui container (fără să le oprească) și le reia exact din același punct.
  • docker wait: Așteaptă oprirea unuia sau mai multor containere și afișează codul de ieșire al fiecăruia.