Què és Docker? Contenidors explicats per a no programadors
Docker és una eina que empaqueta una aplicació juntament amb tot el que necessita per executar-se —la versió correcta del llenguatge, les biblioteques, les eines del sistema i la configuració— en una unitat estàndard anomenada contenidor. Un contenidor funciona de la mateixa manera en l'ordinador d'un desenvolupador, en un servidor de proves o en un núvol, cosa que acaba amb el clàssic problema de «però si a la meva màquina funcionava». La recepta per construir un contenidor és un fitxer de text curt anomenat Dockerfile.
Per què importa Docker quan construeixes amb IA
Si la teva aplicació té un backend —una API en Python, Node, C# o Java— ha d'executar-se en algun lloc amb exactament el programari adequat instal·lat. Docker és la manera més habitual de fer-ho repetible.
- Desplegar backends. Molts hostings, inclòs Mythex, despleguen backends construint un contenidor a partir d'un Dockerfile. A Mythex, demanar «una API web en C#» o «un backend en Java» et dona l'aplicació més un Dockerfile, i Publicar construeix la imatge i la desplega (Backends d'API).
- Sortir d'una plataforma. Si exportes una aplicació construïda amb IA, un Dockerfile fa molt més fàcil executar-la en un altre hosting. Consulta com exportar i autoallotjar una aplicació construïda amb IA.
- Treballar amb desenvolupadors. Un desenvolupador que s'incorpora al projecte pot iniciar tota l'aplicació amb una o dues ordres, en lloc de passar un dia instal·lant coses.
Una analogia del dia a dia: els contenidors de transport
Abans dels contenidors de transport estàndard, la mercaderia es carregava peça a peça —sacs, barrils, caixes— i cada port la gestionava de manera diferent. El contenidor d'acer estàndard ho va canviar: l'empaquetes una vegada, i qualsevol vaixell, grua, tren o camió el pot moure sense preocupar-se del que hi ha dins.
Docker fa el mateix amb el programari:
- El Dockerfile és la llista d'empaquetat i les instruccions.
- La imatge és el contenidor empaquetat i segellat.
- Un contenidor en execució és aquesta caixa posada a treballar en un vaixell —aquí, un servidor.
- Docker Engine és la grua i el vaixell: el programari d'un servidor que sap executar qualsevol contenidor.
Com funciona Docker
| Peça | Què és |
|---|---|
| Dockerfile | Un fitxer de text amb instruccions pas a pas per construir la imatge. |
| Imatge | Un paquet de només lectura: elements bàsics del sistema operatiu, runtime, biblioteques i el teu codi. |
| Contenidor | Una instància en execució d'una imatge, aïllada d'altres aplicacions de la mateixa màquina. |
| Registre | Un lloc on emmagatzemar i compartir imatges, com Docker Hub o el registre d'un proveïdor al núvol. |
| Docker Engine | El servei en segon pla que construeix imatges i executa contenidors. Gratuït i de codi obert. |
| Docker Desktop | Una aplicació per a Mac, Windows i Linux que inclou el motor amb una interfície gràfica. |
Contenidors vs màquines virtuals: una màquina virtual simula ser un ordinador separat complet amb el seu propi sistema operatiu, de manera que és pesada i lenta d'iniciar. Un contenidor comparteix el nucli del sistema operatiu de l'amfitrió i només aïlla l'aplicació i els seus fitxers, de manera que normalment s'inicia en segons i fa servir molta menys memòria. Molts contenidors poden funcionar en paral·lel en un mateix servidor.
Un exemple pas a pas: una petita API en Python
Suposem que el teu constructor amb IA ha creat un backend FastAPI en Python per a una aplicació de reserves. El Dockerfile podria ser així:
FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
Línia per línia:
| Línia | Què fa |
|---|---|
FROM python:3.12-slim | Comença des d'una imatge oficial que ja té Python 3.12 instal·lat. |
WORKDIR /app | Treballa dins de la carpeta /app del contenidor. |
COPY requirements.txt . i RUN pip install ... | Copia la llista de biblioteques i les instal·la. |
COPY . . | Copia el codi propi de l'aplicació. |
EXPOSE 8000 | Indica que l'aplicació escolta al port 8000. |
CMD [...] | L'ordre que inicia el servidor web quan s'executa el contenidor. |
En paraules senzilles: «Comença amb Python 3.12. Instal·la les biblioteques que hi ha a requirements.txt. Copia el codi. Inicia el servidor web al port 8000.»
Després, un desenvolupador (o una plataforma d'allotjament) executa dues ordres:
docker build -t booking-api .
docker run -p 8000:8000 booking-api
La primera construeix la imatge i la batseja booking-api. La segona inicia un contenidor i connecta el port 8000 de la màquina amb el port 8000 dins del contenidor. L'API ja està en marxa, de la mateixa manera que ho estarà a qualsevol servidor que tingui Docker.
Fixa't en què no hi ha a la imatge: contrasenyes i claus d'API. Aquestes es passen quan s'inicia el contenidor, com a variables d'entorn, de manera que la mateixa imatge pot funcionar en proves i en producció amb configuracions diferents.
Termes clau
| Terme | Significat |
|---|---|
| Contenidor | Un paquet aïllat en execució d'una aplicació i les seves dependències. |
| Imatge | La plantilla a partir de la qual s'inicia un contenidor. |
| Imatge base | El punt de partida a la línia FROM d'un Dockerfile, com python:3.12-slim o node:22. |
| Capa | Cada pas del Dockerfile afegeix una capa en memòria cau, cosa que fa les reconstruccions més ràpides. |
| Mapatge de ports | Connectar un port de l'amfitrió amb un port dins del contenidor. |
| Volum | Emmagatzematge que sobreviu quan es reemplaça un contenidor. Els contenidors en si són descartables. |
| Docker Compose | Un fitxer que descriu diversos contenidors que s'executen junts, com una API més una base de dades. |
| Kubernetes | Un sistema per executar molts contenidors en molts servidors. La majoria d'aplicacions petites no el necessiten. |
Idees errònies habituals
- «Docker és una màquina virtual». És més lleuger: els contenidors comparteixen el nucli de l'amfitrió.
- «Les dades desades dins d'un contenidor són segures». Els contenidors estan pensats per tirar-se i substituir-se. Tot el que ha de durar —dades d'usuaris, pujades— ha d'anar a una base de dades, a emmagatzematge de fitxers o a un volum.
- «Posar secrets al Dockerfile és correcte perquè és privat». Les imatges es comparteixen i es pugen a registres. Passa els secrets en temps d'execució.
- «Docker fa segura una aplicació». L'aïllament ajuda, però un contenidor que executa programari desactualitzat amb una configuració feble continua sent vulnerable.
- «Totes les aplicacions necessiten Docker». Un lloc estàtic o un frontend senzill se sol allotjar com a fitxers normals, sense cap contenidor.
- «Docker Desktop és gratuït per a tothom». El motor és gratuït; Docker Desktop requereix una subscripció de pagament per a les empreses més grans, segons les condicions de Docker.
Què demanar al teu constructor d'IA
- «Necessita aquesta aplicació un Dockerfile? Si és així, explica cada línia en català senzill.»
- «Fes servir una imatge base petita i oficial i fixa la versió del llenguatge.»
- «Mantín els secrets fora de la imatge. Llegeix-los de variables d'entorn en temps d'execució.»
- «Assegura't que les pujades i les dades es guardin a la base de dades o a l'emmagatzematge de fitxers, no dins del contenidor.»
- «Afegeix un fitxer de Docker Compose perquè un desenvolupador pugui executar el frontend, l'API i la base de dades localment amb una sola ordre.»
- «Afegeix un endpoint de comprovació de salut perquè l'hosting pugui saber si l'API està en marxa.»
Docker a Mythex
No cal que instal·lis ni executis Docker per fer servir Mythex. El teu projecte s'executa en un sandbox de núvol privat, i quan demanes un backend que necessita un contenidor —per exemple C#, Java o un servei personalitzat de Node o Python— Mythex escriu l'aplicació més un Dockerfile, la mostra en el sandbox i la desplega quan publiques, sense haver de configurar cap hosting (com es tria la tecnologia). Al pla Pro pots exportar el projecte o sincronitzar-lo amb GitHub i endur-te el Dockerfile. Per saber com encaixen backends i frontends, consulta frontend vs backend.
Preguntes
Què és Docker, en termes senzills?
Docker és una eina que empaqueta una aplicació juntament amb tot el que necessita per funcionar —el runtime del llenguatge, les biblioteques i la configuració— en una unitat estàndard anomenada contenidor. El contenidor funciona de la mateixa manera en un portàtil, en un servidor de proves o en un allotjament al núvol.
Quina és la diferència entre una imatge de Docker i un contenidor?
Una imatge és la plantilla empaquetada i de només lectura: l'aplicació i les seves dependències, construïdes a partir d'un Dockerfile. Un contenidor és una còpia en execució d'aquesta imatge. Pots iniciar molts contenidors a partir d'una sola imatge.
Docker és una màquina virtual?
No. Una màquina virtual emula un ordinador complet amb el seu propi sistema operatiu. Els contenidors comparteixen el nucli del sistema operatiu de la màquina amfitriona i només aïllen l'aplicació, de manera que s'inicien més ràpid i fan servir menys memòria.
Docker és gratuït?
Docker Engine, el nucli que executa els contenidors, és gratuït i de codi obert. Segons les condicions de Docker a partir de setembre de 2026, Docker Desktop és gratuït per a projectes de codi obert no comercials i per a empreses amb menys de 250 empleats i menys de 10 milions de dòlars de facturació anual; les empreses més grans necessiten una subscripció de pagament.
He d'aprendre Docker per construir una aplicació amb IA?
Normalment no. Molts constructors amb IA s'encarreguen dels contenidors per tu. Ajuda saber què és un Dockerfile per entendre com s'empaqueta un backend i per poder executar o allotjar l'aplicació en un altre lloc si l'exportes.