← Volver al artículo
<!-- .slide: data-background-image="/articulos/docker-en-el-dti/images/cargo-ship-port.jpg" data-background-opacity="0.22" --> <div class="slide-brand"> <img src="/logos/unach-horizontal.png" alt="Universidad Adventista de Chile" class="unach-logo" /> <span class="divider"></span> <img src="/logos/dti-logo.svg" alt="DTI" class="dti-logo" /> </div> # Docker en el DTI ### Qué es, qué resuelve y cómo lo usamos Empaquetar software como contenedores que viajan iguales en todas partes. --- ## ¿Qué es Docker? <div class="slide-grid"> <div> Una herramienta que **empaqueta tu aplicación + sus dependencias** en una caja estándar. > Como el contenedor marítimo: cualquier puerto sabe levantarlo, cualquier barco sabe apilarlo. Lo que va adentro es problema de quien envía. </div> <div> <img src="/articulos/docker-en-el-dti/images/shipping-containers.jpg" alt="Contenedores apilados en puerto" class="slide-photo" /> </div> </div> --- ## El problema "funciona en mi máquina" - En el computador del desarrollador → ✅ - En el servidor de staging → ❌ - En producción → 🔥 Distintas versiones de lenguaje, librerías, configuración… el código termina rompiéndose donde no debería. > Docker mete **todo lo que la aplicación necesita** en la misma caja. > Si funciona en la caja, funciona en cualquier servidor. --- ## Tres palabras: Dockerfile · imagen · contenedor <img src="/articulos/docker-en-el-dti/images/dockerfile-image-container.svg" alt="Flujo de Dockerfile a imagen a contenedor" class="slide-hero" /> - **Dockerfile** — la receta. - **Imagen** — el paquete construido (vive en `registry.gitlab.unach.cl`). - **Contenedor** — la imagen corriendo. --- ## Cómo lo instalas - **Windows** → activar WSL2 + instalar Docker Desktop. - **macOS** → instalar Docker Desktop (Intel o Apple Silicon). - **Linux** → instalar Docker Engine desde `docs.docker.com`. > Si te trabas en la instalación, **escribe a tu mentor DTI**. --- ## Los 8 comandos básicos | Comando | Para qué | | --------------------------- | --------------------------------- | | `docker --version` | Verificar instalación | | `docker pull <imagen>` | Bajar una imagen | | `docker run <imagen>` | Arrancar un contenedor | | `docker ps` | Ver qué corre | | `docker logs <contenedor>` | Ver salida del contenedor | | `docker stop <contenedor>` | Detenerlo | | `docker compose up` | **Levantar todo el proyecto** | | `docker compose down` | Bajar y limpiar | --- ## `docker compose up` — lo más usado <img src="/articulos/docker-en-el-dti/images/docker-desktop.svg" alt="Docker Desktop mostrando contenedores corriendo" class="slide-hero" /> Levanta **todos** los contenedores que el proyecto necesita: app + base de datos + caché. ```bash cd sigae/ docker compose up ``` Listo, el proyecto corre completo en tu máquina. --- ## ¿Y en producción? <img src="/articulos/git-workflow-con-gitlab/images/gitlab-cicd-pipeline.svg" alt="Pipeline CI/CD construyendo imagen Docker" class="slide-hero" /> Tras un merge aprobado, **el CI/CD construye la imagen y despliega solo**. Tú **no corres** `docker build` ni `docker push`. --- ## Lo mínimo que tienes que recordar 1. Docker empaqueta tu app en un **contenedor** estándar. 2. La receta es el **`Dockerfile`** (en el repo). 3. La imagen vive en **`registry.gitlab.unach.cl`**. 4. Tú sólo corres `docker compose up` localmente. 5. **CI/CD construye y despliega** por ti. --- <!-- .slide: data-background-image="/articulos/docker-en-el-dti/images/cargo-ship-port.jpg" data-background-opacity="0.25" --> <div class="slide-brand"> <img src="/logos/unach-horizontal.png" alt="Universidad Adventista de Chile" class="unach-logo" /> <span class="divider"></span> <img src="/logos/dti-logo.svg" alt="DTI" class="dti-logo" /> </div> # ¿Dudas? Habla con tu **mentor DTI**. Revisa también [Trabajar con Git y GitLab en el DTI](/articulos/git-workflow-con-gitlab). `docs.docker.com` · `wiki-sistemas.unach.app`