Junior
Hoe verbind je met een draaiende container gemaakt met Docker?
sobes.tech AI
Antwoord van AI
Er zijn verschillende manieren:
-
Docker attach: Verbindt de standaard invoer, uitvoer en fouten van je terminal met het hoofdproces van de container.
docker attach <container_id_or_name>- Voordelen: Gemakkelijk in gebruik, directe verbinding met het hoofdproces.
- Nadelen: Het verlaten van de sessie (Ctrl+C) kan het hoofdproces van de container stoppen. Niet geschikt voor het uitvoeren van aparte commando's in de container.
-
Docker exec: Voert een nieuw commando uit in de lopende container en verbindt een terminal ermee. Ideaal voor interactieve werkzaamheden (shell) of het uitvoeren van scripts.
docker exec -it <container_id_or_name> <commando>- Het
-it-argument is voor interactieve modus (-i) en pseudo-TTY toewijzing (-t). <commando>is het commando dat je binnen de container wilt uitvoeren, meestalbashofsh.
docker exec -it my_web_server bash # Verbinding maken met bash in de container docker exec my_db_container ps aux # Voert het commando `ps aux` uit en toont het in de huidige terminal- Voordelen: Stopt het hoofdproces van de container niet bij het afsluiten. Maakt het mogelijk om elk gewenst commando binnen de container uit te voeren. De meest gebruikte methode voor debugging en onderhoud.
- Nadelen: Start een nieuw proces binnen de container.
- Het
-
SSH-server in de container: Een complexere aanpak die installatie en configuratie van een SSH-server binnen de container vereist. Hiermee kun je verbinding maken met de container als met een gewone virtuele machine of server via SSH.
- Voordelen: Standaard en vertrouwde beheer methode. Veiliger voor productiebeheer (bij juiste configuratie).
- Nadelen: Maakt het containerbeeld complexer. Vereist het instellen van de SSH-server en het beheren van sleutels/wachtwoorden. Breekt het "één proces per container"-paradigma van Docker als de hoofdproces geen SSH is.
Aanbeveling: Voor de meeste debugging- en interactieve werkzaamheden is docker exec -it de meest geschikte en veilige methode.