2.1 Comandos principales de docker network
Las redes en Docker permiten que los contenedores interactúen entre sí y con redes externas. Los comandos de docker network
ofrecen posibilidades flexibles para la creación, configuración y gestión de redes, garantizando aislamiento y control sobre la interacción de red de los contenedores. En esta lección, revisaremos en detalle los comandos de docker network
y cómo usarlos para gestionar redes.
Comandos principales de docker network
:
- docker network create
- docker network ls
- docker network inspect
- docker network connect
- docker network disconnect
- docker network rm
Creación de red: comando docker network create
El comando docker network create
se usa para crear nuevas redes. Puedes crear redes con diferentes drivers, como bridge
, host
, overlay
y macvlan
.
Ejemplo de creación de una red con el driver bridge
docker network create --driver bridge my_bridge_network
Ejemplo de creación de una red con el driver overlay
docker network create --driver overlay my_overlay_network
Ejemplo de creación de una red con el driver macvlan
docker network create --driver macvlan \
--subnet=192.168.1.0/24 \
--gateway=192.168.1.1 \
-o parent=eth0 my_macvlan_network
2.2 Comandos para trabajar con redes
1. Ver redes disponibles: comando docker network ls
El comando docker network ls
muestra una lista de todas las redes creadas en Docker.
docker network ls
La salida del comando se verá de la siguiente manera:
NETWORK ID NAME DRIVER SCOPE
0e7e2d58fe94 bridge bridge local
9c84fdfc69ee host host local
71cfb6a79d9e none null local
2. Ver información sobre una red: comando docker network inspect
El comando docker network inspect
permite obtener información detallada sobre una red específica, incluyendo los contenedores conectados, configuraciones de subred y gateway.
Ejemplo de uso:
docker network inspect my_bridge_network
La salida del comando contendrá información sobre la red en formato JSON:
[
{
"Name": "my_bridge_network",
"Id": "0e7e2d58fe94",
"Created": "2021-01-01T00:00:00.000000000Z",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.18.0.0/16",
"Gateway": "172.18.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Containers": {
"container_id": {
"Name": "my_container",
"EndpointID": "6c52f8c75c1e",
"MacAddress": "02:42:ac:11:00:02",
"IPv4Address": "172.18.0.2/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {}
}
]
3. Conectar un contenedor a una red: comando docker network connect
El comando docker network connect
se utiliza para conectar un contenedor ya ejecutado a una red existente.
Ejemplo de uso:
docker network connect my_bridge_network my_container
4. Desconectar un contenedor de una red: comando docker network disconnect
El comando docker network disconnect
se utiliza para desconectar un contenedor de una red.
Ejemplo de uso:
docker network disconnect my_bridge_network my_container
5. Eliminar una red: comando docker network rm
El comando docker network rm
se utiliza para eliminar una red. Ten en cuenta que una red solo puede eliminarse después de desconectar todos los contenedores conectados a ella.
Ejemplo de uso:
docker network rm my_bridge_network
2.3 Ejemplos de comandos docker network
Ejemplos del uso de comandos docker network
Ejemplo 1: Creación y uso de una red bridge
Creación de la red:
docker network create --driver bridge my_bridge_network
Inicio de contenedores y conexión a la red:
docker run -d --name container1 --network my_bridge_network nginx
docker run -d --name container2 --network my_bridge_network redis
Verificación de la red:
docker network inspect my_bridge_network
La salida del comando docker network inspect
contendrá información detallada sobre la red en formato JSON. Para hacer la salida más legible, puedes usar la utilidad jq
:
docker network inspect my_bridge_network | jq
Es útil para filtrar y visualizar de manera estructurada datos sobre la red, como los contenedores conectados, sus direcciones IP y las configuraciones de subred.
Ejemplo 2: Conectar y desconectar contenedores
Inicio del contenedor:
docker run -d --name my_container nginx
Conexión del contenedor a la red:
docker network connect my_bridge_network my_container
Desconexión del contenedor de la red:
docker network disconnect my_bridge_network my_container
GO TO FULL VERSION