docker create în Docker

Containere Docker 1.3+

Creează un container cu toate setările lui, fără să-l pornească; îl pornești mai târziu cu docker start.

Sintaxă comandă
docker create [opțiuni] <imagine> [comandă] [argumente...]

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 create să pornească aplicația: containerul rămâne în starea Created până la docker start; docker ps îl arată doar cu -a.
  • Folosirea opțiunii -d: nu are sens la create, 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.