Crear una red bridge (puente) básica
En este paso, aprenderemos cómo crear una red bridge básica en Docker. Una red bridge es el tipo de red predeterminado para los contenedores. Los contenedores conectados a la misma red bridge pueden comunicarse entre sí, mientras que están aislados de los contenedores en otras redes bridge y de la red de la máquina host.
Primero, listemos las redes Docker existentes para ver las predeterminadas.
docker network ls
Debería ver algunas redes predeterminadas como bridge
, host
y none
. La red bridge
es con la que trabajaremos.
Ahora, creemos una nueva red bridge. La llamaremos my-bridge-network
.
docker network create my-bridge-network
Este comando crea una nueva red bridge con la configuración predeterminada. Docker asigna automáticamente una subred y una puerta de enlace a esta red.
Para verificar que la red se haya creado correctamente, liste las redes Docker nuevamente.
docker network ls
Ahora debería ver my-bridge-network
en la lista.
A continuación, inspeccionemos la red recién creada para ver sus detalles, incluyendo la subred y la puerta de enlace asignadas por Docker.
docker network inspect my-bridge-network
La salida de este comando proporcionará información detallada sobre la red, como su ID, el controlador (que debería ser bridge
) y la subred y la puerta de enlace en la sección IPAM
.
Ahora, ejecutemos un contenedor y conectémoslo a nuestra nueva red. Usaremos la imagen alpine
para este ejemplo. Si no tiene la imagen alpine
localmente, Docker la descargará automáticamente.
docker run -d --name container1 --network my-bridge-network alpine sleep infinity
Este comando ejecuta un contenedor llamado container1
en modo desatendido (-d
), lo conecta a my-bridge-network
(--network my-bridge-network
) y lo mantiene en ejecución ejecutando el comando sleep infinity
.
Para verificar que el contenedor está en ejecución y conectado a la red correcta, puede inspeccionar el contenedor.
docker inspect container1
En la salida, busque la sección Networks
. Debería ver my-bridge-network
enumerado, junto con la dirección IP asignada al contenedor dentro de esa red.
Finalmente, ejecutemos otro contenedor y conectémoslo a la misma red para demostrar la comunicación entre ellos.
docker run -d --name container2 --network my-bridge-network alpine sleep infinity
Ahora, tanto container1
como container2
están conectados a my-bridge-network
. Deben poder comunicarse entre sí utilizando sus nombres de contenedor o direcciones IP dentro de la red.
Para probar la comunicación, podemos ejecutar un comando dentro de container1
para hacer ping a container2
. Primero, necesitamos instalar el paquete iputils
en los contenedores alpine para usar el comando ping
.
docker exec container1 apk add --no-cache iputils
docker exec container2 apk add --no-cache iputils
Ahora, haga ping a container2
desde container1
.
docker exec container1 ping -c 3 container2
Debería ver respuestas de ping exitosas, lo que indica que los dos contenedores en la misma red bridge pueden comunicarse.