English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Instalación detallada de quagga en docker

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!

Te gustará