8 Gestión de redes y datos en Docker
8.1Administración de red predeterminada de Docker
Use docker network ls para enumerar todas las redes en Docker
(1) Demostrar el método de gestión de red de un puente
docker ejecutar -itd --name=networktest ubuntu
(2) Use el comando de vista de red para ver los detalles de la red
8.1.2 Introducción a la red personalizada
1. Red en puente
Una red basada en puente personalizada es una buena opción para una red pequeña con un solo host, pero para una red grande, considere usar una red de clúster de superposición personalizada.
2. Red de superposición en el clúster Swarm
Se aplica solo a los nodos del clúster que requieren el servicio
3. Complementos de red personalizados
8.1.3 Red puente personalizada
1. Crea una red personalizada
docker red crear --driver puente aislado_w
2. Use un contenedor de administración de red personalizado
ventana acoplable ejecutar --network=aislado_w -itd --name=nwtest busybox
3. Agregue administración de red al contenedor
docker red trabajo conectar puente nwtest
4. Desconecte la conexión de red del contenedor
docker red desconectar isolated_w nwtest
5. Eliminar red personalizada
docker red rm aislado_w
8.1.4 Red de comunicación entre contenedores
1. Crea un contenedor
docker run -itd --name=container1 busybox
docker run -itd --name=container2 busybox
ventana acoplable ejecutar --network=aislado_w -itd --name=container3 busybox
docker red conectar aislado_w container2
2. Ver la dirección del contenedor
Después de ingresar a través de la ventana acoplable adjuntar contenedor2, puede ver que hay dos tarjetas de red dentro del contenedor, correspondientes a las direcciones IP 172.17.0.5 y 172.18.0.4 respectivamente
3. Prueba de comunicación del contenedor
ventana acoplable adjuntar contenedor1
ping -w 4 172.18.0.4
El contenedor 2 puede hacer ping a otros contenedores
8.2 Clúster Docker Swarm
Docker Swarm es una herramienta de administración de clústeres nativa de Docker que puede crear y administrar un clúster de Docker directamente desde el cliente de Docker.
1. Fácil de crear y administrar clústeres
2. Ampliable
3. Gestión de expansión automática de red multi-host de Jiqun
4. Proporcione la función de descubrimiento de servicios
5. Equilibrio de carga
6 Soporte de actualización retrasada y reversión del servicio
8.2.2 Uso de Docker Swarm
1. Preparar tres máquinas virtuales
Instalar ventana acoplable por separado
2. Cree un clúster
docker swarm init --advertise-addr 192.168.56.10 (su propia dirección IP)
Ver información sobre el clúster predeterminado
3. Agregar nodos trabajadores al clúster de DockerSwarm
To add a manager to this swarm, run the following command:
docker swarm join --token SWMTKN-1-1ra9ujfvc34cpmtii7rvgetpi9vw7cvqa7n9jmw50huiv0oet8-be2ida3oef7jph13a5ykr8uem 192.168.56.10:2377
To add a worker to this swarm, run the following command:
docker swarm join --token SWMTKN-1-1ra9ujfvc34cpmtii7rvgetpi9vw7cvqa7n9jmw50huiv0oet8-7oy2sgq5b5o1o9xvjvt98awm4 192.168.56.10:2377
Se unió con éxito al clúster
4. Implementar servicios en el clúster de Docker Swarm
docker service create --replicas 1 --name helloworldswarm alpine ping docker.com
Las instrucciones de administración de servicios comienzan con docker service Las instrucciones de administración de contenedores comienzan con docker container
5. Ver los servicios en el clúster de enjambre de Docker
servicio acoplable ls
servicio docker inspeccionar helloworldswarm
servicio acoplable ps helloworldswarm
6. Cambie la cantidad de réplicas de servicio en el clúster de Docker Swarm
escala de servicio docker helloworldswarm=5
servicio acoplable ps helloworldswarm
Ver la distribución específica y el funcionamiento de cinco copias de servicio en tres nodos
7. Eliminar servicio
servicio acoplable rm helloworldswarm
8. Acceso a los Servicios
El servicio implementado anteriormente no expone directamente el puerto de servicio al mundo exterior, y el mundo exterior no puede acceder a él normalmente.
Se agregó una red impulsada por Ovarlay en comparación con la que no es de clúster. En el lanzamiento del servicio de publicación de clústeres, si no hay una red específica, el valor predeterminado es usar la red de entrada para conectarse. En el desarrollo real, se usarán --replicas para impulsar la red para los servicios de administración.
(2) manager1 crea una red personalizada:
docker network create --driver overlay my-multi-host-network
docker service create --network my-multi-host-network --name my-web --publish 8080:80 --replicas 2 nginx
De esta forma, se despliega nginx
8.3 Gestión de datos de Docker
Si quieres entender el mecanismo de almacenamiento de docker, debes partir de la relación entre imagen, contenedor y almacenamiento de datos
La capa de imagen creada por las instrucciones contenidas en el dockerfile se superpone capa por capa, y se agregará una capa de contenedor encima de la capa de imagen; varios contenedores creados en base a la misma imagen pueden compartir la imagen, pero varios contenedores quieren compartir los mismos datos Almacenar datos fuera del contenedor.
8.3.1 Método de almacenamiento de datos de Docker
los volúmenes se almacenan con el sistema de archivos host
enlazar montajes de almacenamiento a cualquier ubicación en el sistema host
Los montajes tmpfs solo se permiten en la memoria del sistema host y no se escriben en el sistema de archivos del host.
8.4 Gestión de volúmenes de datos de volúmenes
8.4.1 Ventajas del volumen de datos Volúmenes
Los volúmenes de datos son más fáciles de respaldar y migrar que los montajes vinculados
Los volúmenes de datos se pueden administrar mediante la CLI de Docker y la API de Docker
Los volúmenes de datos están disponibles en contenedores de Linux y Windows
Comparta datos de forma más segura entre varios contenedores
8.4.2 Uso de volúmenes de datos de volúmenes
1. Crear y administrar volúmenes de datos
volumen docker crear mi-vol
volumen acoplable ls
Comprobar el volumen de datos
Eliminar volumen de datos
2. Inicie el contenedor y monte el volumen de datos
(1) Ver contenedores nativos y volúmenes de datos
ventana acoplable ps -a ventana acoplable volumen ls
(2) Inicie el contenedor y monte el volumen de datos
docker run -d -it --name devtest --mount source=my-vol,target=/app busybox:latest
Cabe mencionar que cuando el volumen de datos no existe cuando se crea el contenedor, Docker lo creará automáticamente.
(3) Verifique los detalles del contenedor
comando docker inspect para ver los detalles del contenedor. Ver principalmente información de montaje de datos
(4) Ver el archivo de contenedores en el directorio como usuario raíz
(Este artículo son las notas del Capítulo 8 de la fundación de la arquitectura de microservicios)