Tutorial Completo: Configuración de Entorno de Desarrollo Laravel con Docker

 ¡Por supuesto! Es un placer consolidar toda la información de las clases en un tutorial completo y detallado. Aquí tienes la guía paso a paso para configurar tu máquina virtual y montar un entorno de desarrollo Laravel con Docker y persistencia de datos.

🎓 Tutorial Completo: Configuración de Entorno de Desarrollo Laravel con Docker

Este tutorial cubre los procesos esenciales para preparar una máquina virtual con una IP estática, instalar y configurar Docker y Docker Compose, y finalmente, orquestar una aplicación Laravel completa con Nginx y MySQL.


1. Configurar la Red de Nuestra Máquina Virtual (IP Estática)

El objetivo es asignar una dirección IP estática a tu máquina virtual (VM) para garantizar un acceso remoto estable mediante SSH.

1.1. Configuración del Adaptador de Red (Host)

  1. Apaga la máquina virtual (VM).

  2. Accede a la Configuración de la VM y navega a la sección Red.

  3. Cambia el modo de red a Adaptador Puente (Bridge Adapter). Esto permite que la VM se comporte como un dispositivo independiente en tu red local, obteniendo su propia IP en el mismo rango que tu host.

1.2. Configuración de IP Estática (Dentro de la VM)

  1. Reinicia la VM.

  2. Accede al directorio de configuración de red Netplan:

    Bash
    cd /etc/netplan/
    

    [Imagen de la terminal mostrando: cd /etc/netplan/]

  3. Edita el archivo de configuración principal (generalmente 00-installer-config.yaml) usando sudo y nano:

    Bash
    ls
    sudo nano 00-installer-config.yaml
    

    [Imagen de la terminal mostrando: ls y luego sudo nano 00-installer-config.yaml]

  4. Establece la configuración estática dentro del archivo YAML, asegurando una correcta indentación (doble espacio). Cambia dhcp4: true a dhcp4: false y añade la IP deseada, la puerta de enlace (gateway4) y los servidores DNS:

  5. Configuración de Red Estática (Netplan)
    23 nov, 2:19

[Imagen de la terminal mostrando: nano Dockerfile]

4.2. Contenido del Dockerfile

El siguiente código YAML (corregido y completo) define la imagen:

Dockerfile para PHP-FPM con Laravel
23 nov, 2:19

5.2. Contenido del Docker Compose (App Service)

  1. Contenido del archivo de configuración de Nginx:

  1. Asegúrate de que las variables de conexión a la base de datos apunten al nombre del servicio Docker Compose (db) y utiliza credenciales claras:

[Imagen de la terminal mostrando: docker exec laravel_app_1 php artisan migrate y la creación exitosa de las tablas]

* **Resultado:** Si las tablas se migran exitosamente, confirma que tu aplicación Laravel, Nginx y MySQL están configurados correctamente y se comunican a través de la red de Docker.

Con esto, has completado la configuración de un entorno de desarrollo robusto y persistente. El siguiente paso recomendado es configurar un dominio local para evitar el uso de la IP y el puerto.



# This is the network config written by 'subiquity'
    network:
      version: 2
      ethernets:
        enp0s3: # El nombre de tu interfaz de red
          dhcp4: false
          addresses: [192.168.1.208/24] # IP estática y máscara
          gateway4: 192.168.1.1       # Tu puerta de enlace local
          nameservers:
            addresses: [8.8.8.8, 8.8.4.4] # DNS de Google
    ```
    *\[Imagen del editor nano con el contenido YAML de configuración de IP estática]*

5.  **Aplica los cambios** y verifica la nueva dirección IP:

    ```bash
    sudo netplan apply
    ip addr
    ```

6.  **Verifica la conexión a Internet** con un ping:

    ```bash
    ping google.com
    ```

---

## 2. Configurar y Actualizar Máquina a través de SSH

El acceso remoto por SSH te permite trabajar directamente desde la terminal de tu máquina local, sin necesidad de usar la consola de la VM.

### 2.1. Verificar el Servicio SSH

1.  Asegúrate de que el servidor SSH esté activo en la VM:

    ```bash
    sudo /etc/init.d/ssh status
    ```
    *\[Imagen de la terminal mostrando: `sudo /etc/init.d/ssh status` con el estado `Active: active (running)`]*

### 2.2. Conexión Remota (Host Local)

1.  Abre la terminal en tu máquina local (Git Bash, PowerShell o Terminal).
2.  Conéctate usando tu usuario y la IP estática configurada:

    ```bash
    ssh udemy@192.168.1.208
    ```
3.  Acepta la clave de host si es la primera vez (`yes`) e introduce tu contraseña. A partir de ahora, trabajarás desde esta terminal.

### 2.3. Actualizar el Sistema Operativo

Mantener el servidor actualizado es fundamental, principalmente por seguridad.

1.  **Actualizar la lista de paquetes:**

    ```bash
    sudo apt update
    ```

2.  **Actualizar el sistema:**

    ```bash
    sudo apt upgrade -y
    ```

3.  **Instalar Net Tools** (para comandos clásicos como `ifconfig`):

    ```bash
    sudo apt install net-tools -y
    ```

---

## 3. Instalar Docker y Docker Compose

Instalaremos el motor de contenedores Docker y su herramienta de orquestación, Docker Compose.

### 3.1. Instalación de Docker y Configuración del Servicio

1.  **Instalar Docker:**

    ```bash
    sudo apt install docker.io -y
    ```

2.  **Habilitar e Iniciar el Servicio:**

    ```bash
    sudo systemctl enable --now docker
    ```
    *\[Imagen de la terminal mostrando: `sudo systemctl enable --now docker` y la creación del enlace simbólico]*

3.  **Verificar la versión** (ejemplo):

    ```bash
    docker --version
    # Docker version 19.03.8, build afacb8b7f0
    ```

### 3.2. Instalación de Docker Compose

1.  **Instalar Docker Compose:**

    ```bash
    sudo apt install docker-compose -y
    ```
    *\[Imagen de la terminal mostrando: `sudo apt-get install docker-compose`]*

### 3.3. Configuración de Permisos (Ejecución sin `sudo`)

Es buena práctica agregar tu usuario al grupo `docker` para ejecutar comandos sin usar `sudo`.

1.  **Añadir el Usuario al Grupo Docker:**

    ```bash
    # Si el grupo no existe (la instalación de docker.io normalmente lo crea)
    sudo groupadd docker
    # Añadir el usuario actual al grupo
    sudo usermod -aG docker $USER
    # Reiniciar la membresía del grupo para la sesión actual
    newgrp docker
    ```

2.  **Probar Docker:**
    Ejecuta la imagen de prueba para confirmar que no necesitas `sudo` y que la configuración funciona:

    ```bash
    docker run hello-world
    ```
    *\[Imagen de la terminal mostrando: `sudo usermod -aG docker $USER`, `newgrp docker` y `docker run hello-world`]*

---

## 4. Crear Archivo Dockerfile

El Dockerfile define la imagen de PHP-FPM (FastCGI Process Manager) que usaremos para nuestra aplicación Laravel, instalando todas las dependencias necesarias.

### 4.1. Crear Directorio y Archivo

1.  Crea el directorio del proyecto y entra en él:

    ```bash
    mkdir laravel
    cd laravel
    ```

2.  Crea el Dockerfile:

    ```bash
    nano Dockerfile

Comentarios

Entradas más populares de este blog

ejercicios-Crear Carpeta y Archivo de Texto en Ubuntu

Instalar Docker en Ubuntu Server usando docker.io

Tutorial de Carpetas y Directorios en Ubuntu Linux