Primul container
Vom folosi o imagine Alpine cu versiunea specificată explicit, pentru ca rezultatul să fie reproductibil.
Descărcarea imaginii
docker image pull alpine:3.24
docker image ls alpine
Prima comandă descarcă imaginea din Docker Hub. A doua afișează imaginile Alpine disponibile local.
Container cu execuție scurtă
docker container run --rm alpine:3.24 uname -a
Docker creează un container, execută uname -a, apoi îl șterge datorită opțiunii --rm.
Container interactiv
docker container run --rm -it alpine:3.24 sh
În shell-ul containerului rulați:
cat /etc/os-release
id
ps
exit
Opțiunea -i păstrează intrarea standard deschisă, iar -t alocă un pseudo-terminal.
Container în background
docker container run -d --name alpine-demo alpine:3.24 sleep 600
docker container ls
Putem inspecta containerul fără să oprim procesul principal:
docker container top alpine-demo
docker container logs alpine-demo
docker container inspect alpine-demo
docker container exec -it alpine-demo sh
În shell-ul deschis prin exec, rulați hostname, apoi exit. Comanda exec pornește un proces nou într-un container deja pornit.
Oprire și ștergere
docker container stop alpine-demo
docker container ls -a
docker container rm alpine-demo
Oprirea containerului nu îl șterge. După rm, stratul read/write al containerului dispare, dar imaginea alpine:3.24 rămâne disponibilă.
Preferăm docker exec pentru inspectare. docker attach conectează terminalul la procesul principal al containerului și poate avea efecte neașteptate asupra acestuia.
Checkpoint
- imaginea și containerul sunt obiecte diferite
- un container există cât timp este în execuție sau până când este șters explicit
--rmeste util pentru containere temporare--namene permite să folosim un nume predictibil în locul ID-ului