English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
El proyecto de enrutador virtual en openstack consume demasiado recursos, se necesita migrar el enrutador virtual a Docker, y se considera que primero deben solucionarse varios problemas.
1. ¿Cómo integrar docker en openstack? Este problema se dio a conocer por parte de openstack oficialmente con tres soluciones, basadas en nova, heat y proyectos de contenedores individuales
2. La gestión y orquestación de contenedores después de la integración de docker, se decidió utilizar K8S
3¿Es posible instalar quagga en docker y paquetizarlo en una imagen de quagga para la configuración automática del programa de desarrollo secundario?
Hoy traté de instalar quagga en docker y abrir automáticamente los procesos zebra, ripd, ospfd y bgpdz. Hay muchos materiales en línea sobre la instalación y uso de docker, por favor consulte por su cuenta.
La construcción de la imagen se realiza automáticamente según el archivo Dockerfile, y luego se ejecuta el contenedor basado en la imagen construida.
Dockerfile
FROM lijianfeng/ubuntu:v1.0 MAINTAINER lijianfeng RUN apt-get install -y quagga RUN apt-get install -y telnet ADD zebra.conf /etc/quagga/zebra.conf ADD ospfd.conf /etc/quagga/ospfd.conf ADD ripd.conf /etc/quagga/ripd.conf ADD bgpd.conf /etc/quagga/bgpd.conf ADD init_conf.sh /etc/quagga/init_conf.sh CMD sh /etc/quagga/init_conf.sh ; /bin/bash
Notas: lijianfeng/ubuntu:v1.0 La imagen base de ubuntu es la que he hecho, solo que es Ubuntu oficial:14.04Se han instalado paquetes de software comunes.
Cree zebra.conf ospfd.conf ripd.conf bgpd.conf en el directorio同级 de Dockerfile, el contenido es
hostname router
password zebra
enable password zebra //Sólo tiene zebra.conf, los demás no
log stdout
Cree init_conf.sh en el directorio同级 de Dockerfile, el contenido es
#!/bin/bash sed -ri "s/hostname .+/hostname $HOSTNAME/" /etc/quagga/zebra.conf sed -ri "s/hostname .+/hostname $HOSTNAME/" /etc/quagga/ripd.conf sed -ri "s/hostname .+/hostname $HOSTNAME/" /etc/quagga/ospfd.conf sed -ri "s/hostname .+/hostname $HOSTNAME/" /etc/quagga/bgpd.conf chown -R quagga.quagga /etc/quagga /usr/lib/quagga/zebra -d /usr/lib/quagga/ripd -d /usr/lib/quagga/ospfd -d /usr/lib/quagga/bgpd -d
Creación de imagen:
docker build -t lijianfeng/quagga .
Porque se construye la imagen en el directorio de nivel superior, el último es . , de lo contrario se necesita una ruta absoluta
La construcción se completó, consulte docker images para ver que aparecerá lijianfeng/imagen de quagga
El contenedor se ejecuta, aquí se utiliza el modo de interacción de terminal virtual
docker run -it --name router --hostname router --privileged=true lijianfeng/quagga
Después de ejecutar el comando, entrará en el espacio de operaciones de docker, que se puede ingresar al proceso de守护进程 mediante telnet localhost <puerto>.
Gracias por leer, espero que pueda ayudar a todos, gracias por el apoyo a este sitio!