[ES] Tutorial de Docker para Principiantes: Contenerización Paso a Paso
Tags: docker, development, virtualization, containers
Published: 2023-08-21 14:56:33


**_Docker_** es una poderosa herramienta que simplifica la gestión y el despliegue de aplicaciones al empaquetarlas en contenedores. En este tutorial, aprenderás los conceptos básicos de Docker y cómo empezar a utilizarlo con ejemplos prácticos.

**1. Instalación de Docker**
Descarga Docker Desktop e instálalo.
[Instalación en Windows](https://docs.docker.com/desktop/install/windows-install/)
[Instalación en macOS](https://docs.docker.com/desktop/install/mac-install/)

---

_Instalación en Linux:_
Ejecuta estos comandos para instalar Docker:


```
sudo apt update
sudo apt install docker.io
```
Inicia el servicio de Docker y configúralo para que se inicie automáticamente en el arranque:

```
sudo systemctl start docker
sudo systemctl enable docker
```
Añade tu usuario al grupo "docker" para ejecutar comandos Docker sin sudo (requiere cerrar sesión e iniciar sesión nuevamente):

```
sudo usermod -aG docker $USER
```
Verifica la instalación:

```
docker --version
```
**2. Ejecución de tu Primer Contenedor**
Hello World en Docker
Para verificar que Docker esté funcionando correctamente, ejecutemos un contenedor de prueba:

```
docker run hello-world
```
Docker descargará la imagen "hello-world" desde Docker Hub y la ejecutará en un contenedor. Deberías ver un mensaje que confirma que Docker está funcionando correctamente.

**3. Trabajar con Imágenes**
Buscar y Descargar Imágenes
Docker utiliza imágenes para crear contenedores. Puedes buscar imágenes en Docker Hub y descargarlas con el siguiente comando:

```
docker pull nombre-de-la-imagen
```
Por ejemplo, para descargar una imagen de Ubuntu, usa:


```
docker pull ubuntu
```
Crear tu Propia Imagen
Puedes crear tus propias imágenes personalizadas utilizando un archivo llamado Dockerfile. Aquí hay un ejemplo de Dockerfile para crear una imagen que ejecuta un servidor web Nginx:


```
# Usa una imagen base
FROM nginx:latest

# Copia tu archivo HTML personalizado al contenedor
COPY mi-archivo-html.html /usr/share/nginx/html/index.html
```
Luego, construye tu imagen:

```
docker build -t mi-servidor-web .
```
Subir una Imagen Personalizada a Docker Hub
Si deseas compartir tu imagen personalizada, puedes subirla a Docker Hub:

Crea una cuenta en [Docker Hub](https://hub.docker.com/).

Inicia sesión desde la línea de comandos:

```
docker login
```
Etiqueta tu imagen con tu nombre de usuario en Docker Hub:

```
docker tag mi-servidor-web nombre-de-usuario/mi-servidor-web
```
Sube tu imagen:

```
docker push nombre-de-usuario/mi-servidor-web
```
**4. Gestionar Contenedores**

- _**Listar y Ver Contenedores**_


Lista todos los contenedores en ejecución:


```
docker ps
```
Lista todos los contenedores, incluidos los detenidos:

```
docker ps -a
```
- _**Detener y Eliminar Contenedores**_

Detén un contenedor en ejecución:

```
docker stop nombre-o-ID-del-contenedor
```
Elimina un contenedor (debe estar detenido):

```
docker rm nombre-o-ID-del-contenedor
```
- _**Ver Registros de Contenedores**_
Muestra los registros de un contenedor:

```
docker logs nombre-o-ID-del-contenedor
```
**5. Persistencia de Datos**
- _**Crear y Usar Volúmenes**_
Para mantener datos importantes, como bases de datos, puedes crear y utilizar volúmenes en Docker.

Crea un volumen:

```
docker volume create nombre-del-volumen
```
- _**Ejecuta un contenedor y monta el volumen:**_

```
docker run -v nombre-del-volumen:/ruta-en-el-contenedor -d nombre-de-la-imagen
```
**6. Redes en Docker**
Gestionar Redes en Docker
Docker crea automáticamente una red para los contenedores, pero puedes crear tus propias redes para aislar contenedores o conectarlos.

Lista las redes en Docker:

```
docker network ls
```
Crea una red personalizada:

```
docker network create nombre-de-la-red
```
Ejecuta un contenedor en una red específica:

```
docker run --network nombre-de-la-red -d nombre-de-la-imagen
```

**7. Docker Compose**
Orquestar Múltiples Contenedores con Docker Compose
Docker Compose es una herramienta para definir y ejecutar aplicaciones Docker con múltiples contenedores. Puedes definir la configuración de tus servicios en un archivo **docker-compose.yml**.

Ejemplo de un archivo docker-compose.yml para un WordPress:

```
version: '3'
services:
   wordpress:
     image: wordpress
     ports:
       - "8080:80"
     environment:
       WORDPRESS_DB_PASSWORD: example
   mysql:
     image: mysql:5.7
     environment:
       MYSQL_ROOT_PASSWORD: example
```
Ejecuta la aplicación con Docker Compose:

```
docker-compose up -d
```
**8. Conclusiones**
¡Felicidades! Ahora tienes una comprensión sólida de los conceptos básicos de Docker. Puedes utilizar este tutorial como referencia mientras exploras más características y casos de uso avanzados de Docker. La contenerización simplificará el desarrollo y la implementación de aplicaciones, permitiéndote trabajar de manera más eficiente en entornos de desarrollo y producción. ¡Buena suerte con tus proyectos en Docker!

_Cualquier duda o sugerencia para próximos post serán totalmente bienvenidas!_