Skip to content

Contenedores

[Actualizado a 26 de septiembre de 2026]

Se deberá seguir los siguientes puntos:

  1. Instalación.
  2. Comandos principales.
  3. Sobre docker run.

Y entrando en materia...

docker run

Lanzando contenedores.

Dockerfile

Creando imágenes.

"Sandbox"

Llevemos a la práctica lo anterior creando sandboxes o entornos de ejecución aislados.

En primer lugar con un simple alias:

alias py13='docker run -it --rm --name python-3.13 -v ./:/home -w /home python:3.13 python'

Ésto nos ejecutará la aplicación o módulo que queramos enjaulado (chroot) dentro del directorio actual y con acceso reducido a redes(*).

Además, podemos mejorar el aislamiento controlando el usuario interior añadiendo -u $(id -u):$(id -g) o cualquier número que queramos -u 1999:1999.

# Creación del alias:
alias alpine='docker run -it --rm  --name alpine-cli -v $(pwd):/app -w /app arangodb/alpineutils-x86_64'

# Ejecución `default` (como root):
alpine id

# Ejecución como usuario local actual:
docker run -u $(id -u):$(id -g) -it --rm  --name alpine-cli -v $(pwd):/app -w /app arangodb/alpineutils-x86_64 id

# Ejecución como usuario inexistente en el host:
docker run -u 1999:1999 -it --rm  --name alpine-cli -v $(pwd):/app -w /app arangodb/alpineutils-x86_64 id

Aislamiento de red con --net none o --network none:

# Ejecución `default` (como `bridge`). Sólo expuesto lo indicado **explícitamente**, pero el contenedor tiene salida:

## Probamos salida
alpine ping 8.8.8.8

## Probamos entrada
## 1. Lanzamos servicio
py13 -m http.server
## 2. Consultamos servicio desde el host
curl localhost:8000

# `bridge` con reenvío:
## 1. Lanzamos servicio
docker run -p 8000:8000 -it --rm --name python-3.13 -v ./:/home -w /home python:3.13 python -m http.server
## 2. Consultamos
curl localhost:8000

# `bridge` con reenvío modificado:
## 1. Lanzamos servicio
docker run -p 80:8000 -it --rm --name python-3.13 -v ./:/home -w /home python:3.13 python -m http.server
## 2. Consultamos
curl localhost


# Ejecución como `host`. Todo el contenedor expuesto:
## 1. Lanzamos servicio
docker run --net host -it --rm --name python-3.13 -v ./:/home -w /home python:3.13 python -m http.server
## 2. Consultamos
curl localhost:8000

# Ejecución completamente **aislada** con `-net none`:
docker run --net none -it --rm --name python-3.13 -v ./:/home -w /home python:3.13 python ping 8.8.8.8

Plantillas Dockerfile

Plantillas

Ejercicios de ampliación