Title: Configuración de red entre contenedores
Course: 2025 - LISI - Virtualizacion 2-2 > Section: Desarrollo y Orquestación con Docker

🛠 Actividad Práctica: Configuración de Red entre Contenedores

🎯 Objetivo

Configurar una red entre dos contenedores Docker (frontend y backend) usando Docker Compose. El frontend se comunica con el backend a través de la red interna de Docker.

📁 Estructura de Archivos

docker-network-practice/
├── docker-compose.yml
├── README.md
├── backend/
│   ├── app.js
│   ├── package.json
│   └── Dockerfile
└── frontend/
    ├── app.js
    ├── package.json
    └── Dockerfile


📄 Contenido de los Archivos

backend/app.js

const express = require('express');

const app = express();

const PORT = 3000;

app.get('/api/message', (req, res) => {

  res.json({ message: 'Hola desde el backend!' });

});

app.listen(PORT, () => {

  console.log(`Backend escuchando en http://localhost:${PORT}`);

});

backend/package.json

{

  "name": "backend",

  "version": "1.0.0",

  "main": "app.js",

  "scripts": {

    "start": "node app.js"

  },

  "dependencies": {

    "express": "^4.18.2"

  }

}

backend/Dockerfile

FROM node:18

WORKDIR /usr/src/app

COPY package*.json ./

RUN npm install

COPY . .

EXPOSE 3000

CMD ["npm", "start"]

frontend/app.js

const express = require('express');

const axios = require('axios');

const app = express();

const PORT = 8080;

app.get('/', async (req, res) => {

  try {

    const response = await axios.get('http://backend:3000/api/message');

    res.send(`Mensaje del backend: ${response.data.message}`);

  } catch (error) {

    res.send('Error al conectar con el backend');

  }

});

app.listen(PORT, () => {

  console.log(`Frontend escuchando en http://localhost:${PORT}`);

});

frontend/package.json

{

  "name": "frontend",

  "version": "1.0.0",

  "main": "app.js",

  "scripts": {

    "start": "node app.js"

  },

  "dependencies": {

    "express": "^4.18.2",

    "axios": "^1.4.0"

  }

}

frontend/Dockerfile

FROM node:18

WORKDIR /usr/src/app

COPY package*.json ./

RUN npm install

COPY . .

EXPOSE 8080

CMD ["npm", "start"]

docker-compose.yml

version: '3'

services:

  backend:

    build: ./backend

    ports:

      - "3000:3000"

  frontend:

    build: ./frontend

    ports:

      - "8080:8080"

    depends_on:

      - backend

README.md

# Actividad Práctica: Configuración de Red entre Contenedores

## Objetivo

Configurar una red entre dos contenedores Docker (frontend y backend) usando Docker Compose. El frontend se comunica con el backend a través de la red interna de Docker.

## Estructura

- `frontend/`: Aplicación web que consume datos del backend.

- `backend/`: API que responde con un mensaje.

- `docker-compose.yml`: Orquestación de los servicios.

- `README.md`: Instrucciones de la actividad.

## Pasos

1. Instala Docker y Docker Compose.

2. Construye y ejecuta los contenedores:

   ```bash

   docker-compose up --build

   ```

1. Accede a la app en tu navegador:

http://localhost:8080


2. Verifica que el frontend muestre el mensaje del backend.
3. Graba un video explicativo mostrando:
  - El código fuente
  - El contenido del docker-compose.yml
  - El proceso de construcción y ejecución
  - La app funcionando en el navegador
4. Sube el video a YouTube con un título como:

Configuración de Red entre Contenedores Docker - [Tu Nombre]


Recursos

- Documentación oficial de Docker Compose
- OBS Studio para grabar pantalla