Ce face docker create
docker run face de fapt doi pași: creează containerul și îl pornește. docker create face doar primul pas și afișează ID-ul containerului nou. Acceptă aproape aceleași opțiuni ca docker run (--name, -p, -v, -e, --restart), cu excepția celor legate de rularea în fundal, ca -d.
Este util când vrei să pregătești un container înainte de pornire: să copiezi în el un fișier de configurare cu docker cp, să-l conectezi la mai multe rețele cu docker network connect sau să extragi fișiere dintr-o imagine fără să rulezi nimic.
Parametri
| Parametru | Descriere |
|---|---|
--name NUME |
Numele containerului. |
-p, -v, -e |
Porturi, volume și variabile de mediu, ca la docker run. |
-it |
Pregătește un terminal interactiv, folosit apoi cu docker start -ai. |
docker start -a |
Pornește containerul și afișează ieșirea lui. |
Exemple
Exemplul 1: Pregătirea configurației înainte de pornire
Creăm containerul, copiem în el configurația și abia apoi îl pornim.
docker create --name web-iasi -p 8080:80 nginx:1.27-alpine
docker cp ./site.conf web-iasi:/etc/nginx/conf.d/default.conf
docker start web-iasi
docker ps --filter name=web-iasi --format '{{.Names}}\t{{.Status}}'
Ieșire în terminal
3c7a9e1f5b2d8c4a6e0f9b7d3a1c5e8f2b4d6a0c9e7f1b3d5a8c2e4f6b0d9a7c
Successfully copied 2.05kB to web-iasi:/etc/nginx/conf.d/default.conf
web-iasi
web-iasi Up 2 seconds
Exemplul 2: Extragerea unui fișier dintr-o imagine, fără s-o rulezi
Un container creat, dar nepornit, permite docker cp; apoi îl ștergem.
id=$(docker create nginx:1.27-alpine)
docker cp "$id":/etc/nginx/nginx.conf ./nginx.conf
docker rm "$id"
Ieșire în terminal
Successfully copied 2.56kB to /home/ana/proiect/nginx.conf
8e2b4d6f0a1c3e5b7d9f2a4c6e8b0d1f3a5c7e9b2d4f6a8c0e1b3d5f7a9c2e4b
Greșeli frecvente
- Așteptarea ca
docker createsă pornească aplicația: containerul rămâne în stareaCreatedpână ladocker start;docker psîl arată doar cu-a. - Folosirea opțiunii
-d: nu are sens lacreate, pentru că nimic nu rulează încă.
Comenzi înrudite
docker attach: Conectează terminalul tău la intrarea, ieșirea și erorile procesului principal al unui container care rulează.docker wait: Așteaptă oprirea unuia sau mai multor containere și afișează codul de ieșire al fiecăruia.docker port: Arată pe ce adrese și porturi ale gazdei sunt publicate porturile unui container.docker rename: Schimbă numele unui container existent, pornit sau oprit, fără să-l recreezi.