sábado, febrero 06, 2021

TIP: Guia rapida de comandos de Docker

Como descargar una imagen de docker:

docker pull nombre_de_la_imagen

comandos que visualizas los contenedores


Todos los contenedores que corren:
docker ps

Todos los contenedores que tengas:
docker ps -a

Todos los contenedores que tengas pero solo los id:
docker ps -aq

borrar un contenedores:
docker rm id_del_contenedor

borrar todos los contenedores:
docker rm $(docker ps -aq)


Ejecutar un docker para crear una instancia:
docker run nombre_de_imagen

darle un nombre a la instancia al ejecutarse:

docker run --name nombre_que_le_voy_a_poner nombre_de_imagen

Ejecutar un contenedor exponiendo un puerto, -p para la definición de puertos y -d es para liberar la consola y que corran en segundo plano:
docker run -p puerto_de_la_maquina:puerto_del_contenedor -d nombre_de_imagen

parar un contenedor:
docker stop id_contenedor

parar todos los contenedores:
docker stop $(docker ps -aq)


ejemplo como bajar, ejecutar y exponer el puerto del servidor web Apache en un solo comando:
docker run -p 80:80 -d httpd

ya puedes visitar desde el navegador a la dirección localhost:80 y veras la pagina de bienvenida de Apache

Ahora ejecutaremos un contenedor de mysql, este necesita ademas una variable de entorno para ejecutar, en este caso la clave de root de la base de datos (revisa documentación de esta imagen en dockerhub):

docker run -d -p 3307-3306 --name servidormysql -e MYSQL_ROOT_PASSWORD=clave_de_mysql mysql

Comandos para imágenes


listar imágenes actuales:
docker images

borrar imagen:
docker rmi nombre_imagen (por su ID)

eliminar todas las imágenes, pero estas no deben ser utilizada por algún contenedor
docker rmi $(docker images -aq)


Copiar archivos desde el pc al contenedor, este ejemplo lo vamos hacer con la maquina virtual nginx. Vamos a copiar la unas paginas html desde la PC a la ubicación de la carpeta html de nginx:
docker run -d -p 80:80 -v $(pwd):/usr/share/nginx/html nginx


ingresar a la consola del contenedor:
docker exec -it nombre_de_contenedor bash

viernes, febrero 05, 2021

Librería CDPDiscovery

 Cree está librería para obtener la información de vecinos de equipos Cisco ( IOS y sb300) que tienen vía CDP y guardarla en una tabla. La librería cuenta con 3 funciones:

 cisco_ios: función para obtener la información de un equipo Cisco IOS.

cisco_sg300:  función para obtener la información de un equipo Cisco sg300.

bulk: función que recibe un listado en csv con ip del equipo, comunidad SNMP y tipo de equipo (cisco_ios y cisco_sg300) 

Instalación

Debemos descargar la librería desde github:

git clone https://github.com/cabildocl/cdpdiscovery 

cd  cdpdiscovery

Ejecutar Python y cargar la librería:

from cdpdiscovery import *

 Ya podemos utilizar la librería de 2 formas, la primera  utilizando directamente las funcione cisco_ios y cisco_sg300 como mostramos a continuación:

python3

from cdpdiscovery import *

## sobre un equipos cisco IOS , IP 192.168.1.10 y comunidad SNMP publica

cisco_ios("192.168.1.10","publica")

salida

local local_if       remote             remote_if       remote_ip                                remote_model
0  SW-CORE   gi1/21  SW-ACCESS  GigabitEthernet0/0/1  192.168.1.100                              
cisco WS-C3850-48XS
1  SW-CORE   gi1/21  MPBB-WLC-01  GigabitEthernet0/0/2  192.168.1.11                               AIR-CT2504-K9

También podemos utilizar la función bulk que recibe un archivo csv, con al lista de equipos, su IP, clave SNMP y tipo. Un  ejemplo viene incluido en el archivo device.csv.example.