Compartir espacios de nombres entre el host y el contenedor
Como sabemos, al iniciar el contenedor, Docker crea seis espacios de nombres diferentes por defecto: Proceso, Red, Montaje, Nombre de host, Memoria compartida y Usuario, para un contenedor. En algunos casos, es posible que queramos compartir un espacio de nombres entre dos o más contenedores. Por ejemplo, en Kubernetes, todos los contenedores en un pod comparten el mismo espacio de nombres de red.
En algunos casos, es posible que queramos compartir los espacios de nombres del sistema host con los contenedores. Por ejemplo, compartimos el mismo espacio de nombres de red entre el host y el contenedor para obtener una velocidad cercana a la velocidad de línea dentro del contenedor. En esta receta, veremos cómo compartir espacios de nombres entre el host y el contenedor.
Preparación
Necesitarás un host con la última versión de Docker instalada, que se pueda acceder a través de un cliente de Docker.
Cómo hacerlo…
Sigue los siguientes pasos:
- Para compartir el espacio de nombres de red del host con el contenedor, ejecuta el siguiente comando:
$ docker container run -it --net=host alpine ash
Si ves los detalles de red dentro del contenedor, ejecuta el siguiente comando:
$ ip a

Verás un resultado igual que el del host:

- Para compartir los espacios de nombres de red, PID e IPC del host con el contenedor, ejecuta el siguiente comando:
$ docker container run -it --net=host --pid=host --ipc=host alpine ash

Cómo funciona…
Docker no crea espacios de nombres separados para el contenedor cuando se pasan estos argumentos al contenedor.