Servidores web instantáneos con Docker
Publicado el 4 de Abril de 2026 en #tecnología
A veces necesitamos montar un servidor web de prueba y no tenemos ganas de pensar. Para estas situaciones podemos usar aplicaciones de Docker que se definen en un par de líneas y salen andando.
Opción 1: echo server
La opción más ligera es un echo server programado en Go que devuelve una respuesta HTTP 200 con un texto arbitrario.
En un docker-compose.yml ponemos:
services:
web:
image: hashicorp/http-echo
command: ["-text", "Hola gato"]
restart: unless-stopped
ports:
- 80:5678
Corremos docker compose up -d y tenemos servidor.
Opción 2: PHP + Apache
Otra opción es usar la imagen oficial de Docker de PHP que viene con un servidor Apache:
services:
web:
image: php:8.5-apache
restart: unless-stopped
volumes:
- ./www:/var/www/html
ports:
- 80:80
Por defecto Apache viene con mod_rewrite desactivado, pero podemos activarlo durante la creación de la imagen:
services:
web:
build:
dockerfile_inline: |
FROM php:8.5-apache
RUN a2enmod rewrite
restart: unless-stopped
volumes:
- ./www:/var/www/html
ports:
- 80:80
Opción 3: PHP + Apache en Alpine
También podemos usar una imagen no oficial basada en Alpine que viene con varios mods activados, incluyendo mod_rewrite y SSL:
services:
web:
image: eriksoderblom/alpine-apache-php:latest
restart: unless-stopped
volumes:
- ./www:/htdocs
ports:
- 80:80
- 443:443
En el directorio www ponemos el sitio, y listo el pollo.
Personalmente prefiero usar aplicaciones de Docker Compose porque son expresivas y es muy fácil manipular redes y volúmenes, pero también se puede configurar con un solo comando:
docker run --detach \
--name web \
--publish 80:80 \
--restart unless-stopped \
--volume ./www:/htdocs \
eriksoderblom/alpine-apache-php:latest
¡Bienvenidos a mi página web!
¡Firmá el libro de visitas!
