Docker Colombia

7th Mar 2023

Es una tecnología Open Source que funciona como plataforma intermedia o plataforma de despliegue para aplicaciones o software Docker Colombia. 

Anteriormente estábamos acostumbrados a manejar VPS para optimizar y controlar varias aplicaciones web con distintos requerimientos de hardware y servicios, donde algunos trabajar con mysql otros con postgresql y otros con oracle. lo cual serían 3 VPS con base de datos distintas. pues en contenedores docker colombia, utilizamos 1 VPS o máquina física pero 3 contenedores distintos para las bases de datos, ( 1 solo sistema operativo para todo y varios microservicios para controlar las base de datos así sean de diferentes motores y configuraciones). 

Actualmente el software Open Source está migrando sus últimas versión a utilizar por defecto o recomendación instalaciones vía Docker o Docker compose ( qué es lo mismo pero contiene un archivo xml donde estará toda la información de configuración personalizada para la aplicación o software que utilicemos mediante instalación docker - docker compose.

 

DOCKER COLOMBIA 


¿ Tecnología Web 3.0 - Docker Colombia ( Contenedores ) ? 

 

Imagina que tienes un sistema Windows Server y debes instalar varias aplicaciones con distintas características y debes utilizar el mismo servidor físico. lo lógico es crear VPS ( máquinas virtuales con diferentes sistemas operativos ( windows, linux ubuntu, linux centos)  y servicios ( apache, nginx, postgresql, mysql, mariadb, tomcat, java server, ruby On rails, python django). Para ello la administración y mantenimiento será algo difícil y llevará mucho tiempo. PERO IMAGINA QUE PUEDES, tener el mismo windows server o linux como sistema principal y puede configurar pequeños espacios llamados CONTENEDORES que tienen un sistema operativo huésped y los servicios ya instalados para su funcionamiento. ( si con un comando estoy instalando sistema operativo con requerimientos mínimos, servicios necesarios para que funcione el software y demás). ( con el comando docker puedo instalar todo un sistema complejo). 

Hemos trabajando con docker por más de 4 años desde el 2020 - 2023 , donde nos dimos cuenta que todos estaban migrando a microservicios, kubernetes y dockers. EL FUTURO ES DOCKER COLOMBIA. 


DATO CURIOSO 1 - Docker está diseñado bajo el lenguaje de programación llamado Go, es un lenguaje de computadora creado por google , es programación concurrente y compilado con tipado estático inspirado en C ( lenguaje de programación de hace años, antes todo era C y C++ años 90).. 

 

INSTALACIÓN DE DOCKER LINUX / WINDOWS 


Instalación Docker en Ubuntu 22 

Actualizar repositorios 

# sudo apt update

Agregar paquetes de Transporte http y demas 

# sudo apt install apt-transport-https ca-certificates curl software-properties-common

Agregar Llave GPG

# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg 


Agregar repositorir Docker a Fuente APT

# echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

 

Actualizar lista de paquetes Apt 

# sudo apt update 

Instalación de Docker 

# sudo apt install docker-ce 

Instalacion de Docker Compose

# sudo apt install docker-ce docker-compose 

Verificar Que ya está instalado 

# sudo systemctl status docker 

 

Si no esta activo lo puede activar como

 # sudo systemctl start docker

Ver Versión de Docker Instalada 

# sudo docker --version 

 

Instalación Docker Centos 7 - Rocky Linux 

 

Instalar librerías y dependencias 

# sudo yum install -y yum-utils wget 

Crear Repositorio Yum 

# sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

Instalar docker 

# sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Iniciar Docker 

# sudo systemctl start docker

 

COMANDOS ÚTILES PARA DOCKER


Mostrar Versión de Docker 

# sudo docker --version 

Mostrar la ayuda de docker 

# sudo docker --help 

Mostrar información de docker 

# sudo docker info 

Mostrar imágenes descargadas en local docker 

# sudo docker images 

Descargar o Correr una Imágen ( Descargar la Imagen ) 

# sudo docker pull drupal 

# sudo docker run drupal 

informacion de una imagen 

# docker info imagen 

# sudo docker run -it -d httpd 

Ve contenedores activos , y ver los id de cada contenedor 

# sudo docker ps

Ver contenedores activos y antiguos operativos

# sudo docker ps -a 

Eliminar un contenedor 

# docker rm ID-Contenedor 

Eliminar una imagen 

# docker rmi id-imagen 

reiniciar un Contenedor 

# docker restart id-contenedor 

Detener un contenedor 

# docker stop id-contenedor 

Iniciar un Contenedor 

# docker start id-contenedor 

Forzar la detección de un contenedor 

# docker kill id-contenedor 

actualizar en nombre de una imagen , cambiar el Id de la imagen 

# docker commit id-imagen usuario/nuevo-nombre-imagen

Ejemplo:# docker commit xc98a6feb5f43 centos/nuevo-centos 

Iniciar sesion en Docker Hub via shell ( bash ) 

# docker login 

Cargar una imagen 

# docker push -id-image ( o nombre imagen) 

Red interna Docker Network 

# docker network ls 

 Copiar un archivo de una contenedor a una carpeta local 

# sudo docker cp 32ce6fbb6exc:/usr/local/apache2/logs/httpd.pid /home/tecnoweb2com/

Verificar el historial de comandos de una imagen 

# docker history httpd 

#docker history drupal 


Buscar una imagen en dockerhub via comando, se debe tener cuenta gratuita docker hub

# docker search pandora-fms 

Instalar un Plugin o Adición a Docker en modo depuración 

# docker plugin install vieux/sshfs DEBUG=1 

Salir de Docker-hub sesión

# docker logout 

para ver el peso en MB de una container es 

# docker ps --size 

eliminar contenedor y volumen que no hacen nada o tiene configuración por defecto ( OJO ES PELIGROSO ESTE COMANDO) , HACER PURGAR 

# docker container prune 

# docker volume prune 

 

MONITOREO DE DOCKER 

 

# docker info 

Ver los logs de una contenedor 

# docker logs id-contenedor 

Ver eventos y actividades que ocurren en docker 

# docker events 

ver estadísticas en tiempo real de los contenedores, cpu, memoria , red y procesos. 

# docker stats 

También puede ver estadísticas de un solo contenedor 

# docker stats id-contenedor 

Inspeccionar un contenedor ( ver toda la información, carpetas, nombres, puertos, datos de red, ip y demás… ) 

# docker container inspect id-contenedor 


DOCKER COMPOSER 

 

Levantar la máquina con un fichero docker-compose hay que ingresar a la carpeta donde esta el fichero .yml

# docker-compose up -d archivo.yml 

Para Parar un Container composer es 

# docker-compose down archivo.yml 

 

VOLUMEN  

 

Crear y nombrar un Volumen 

# sudo docker volume create --name discodata

Listar los Volúmenes 

# sudo docker volume ls

Inspeccionar un Volumen ( Ver lo que tiene ese volumen ) 

# sudo volume inspect discodata

Eliminar un Volumen 

#sudo docker volume rm discodata 

OJO, para borrar un volumen primero debemos eliminar el contenedor 

# sudo docker rm ID-container 

Para Borrar todos los volúmenes que no están siendo utilizados por contenedores,

# docker volume prune ( ojo con este comando ) 

Ejemplo de creación de contenedor usando el volumen, y asociándolo a una carpeta del contenedor. 

# sudo docker run -d -it --name nuevocontenedor -v discodata:/var/lib/mysql drupal 

si le agrego el :ro , agregó el volumen en modo solo lectura 

# sudo docker run -d -it --name nuevocontenedor -v discodata:/var/lib/mysql:ro drupal 


Ejemplo 2 

Crear un contenedor y asignar la carpeta /webfiles del host a la carpeta /var/www/html del contenedor,

# sudo docker run -it -v /webfiles:/var/www/html centos /bin/bash 

# sudo docker run -it --name nuevocontainer -v /webfiles:/var/www/html centos /bin/bash 


Ejemplo de creación de un volumen que es utilizado por varios servidores web.

# docker service create -d --replicas=4 --name servidorweb --mount source=discodata,target=/app drupal

Para ver el servicio corriendo 

# docker service ps 

para borra el servicio 

# docker service rm servidorweb 

 

VOLUMEN BIND / CONECTADOS 

para asociar una carpeta de nuestro equipo local y mapear como una carpeta dentro de un contenedor. 

nos permite ver la carpeta desde el contenedor y nuestra carpeta local. podemos copiar, borrar y actualizar archivos y carpetas. 

 

docker colombia

 


EJEMPLO 

creamos un nuevo contenedor llamado ejemplo2 donde una carpeta local /home/tecnoweb2 se mapea como /var/www/html/ drupal 

# docker run -d -it --name ejemplo2 -v /home/tecnoweb2:/var/www/html drupal 

Otro Ejemplo

# docker run -d -it --name ejemplo3 -v /var/lib/mysql2:/var/lib/mysql ubuntu:17.10

 

Crear contenedor con carpeta temporal  ( cuando se para el contenedor este se borrar, la carpeta estará en memoria ram o swap ) 

# sudo docker run -d -it --name ejemplo4 --tmpfs /var/html/tempo drupal 

 

CONECTAR CARPETA LOCAL A CONTENEDOR 

# sudo docker run -it -v /home/tecnoweb2com:/var/www/ drupal /bin/bash

estoy metiendo en contenido del home de tecnoweb2com en la carpeta del contenedor /var/www/

 

INGRESAR A LA SHELL DE UN CONTENEDOR 

Si usted desea crear un contenedor e ingresar directamente al shell debe correr el siguiente comando

# docker run -it ubuntu bash

AHORA SI EL CONTENEDOR YA ESTÁ ACTIVO , CORRIENDO 

si usted desea conectarse  a un contenedor está corriendo está activo, 

# docker ps     ( para verificar contenedores activos ) 

# docker exec -it ID-CONTAINER bash    ( ojo tambie  puede usar sh )

# docker exec -it ID-CONTAINER sh 

 

GUARDAR EL ESTADO DE UN CONTENEDOR EN UNA NUEVA IMAGEN 

cómo vamos a guardar el estado actual de un contenedor en una nueva imagen, para así conservar los datos. o clonar un contenedor también mediante una imagen. 

# docker commit -m "comentarios-descripcion" -a "Author Name" container_id repository/new_image_name

 

¿ Aprendamos algo de Docker Colombia?

INSTALACIÓN de APLICACIONES UTILIZANDO DOCKER COLOMBIA 

Los siguientes enlaces son los recomendados por nosotros para descargar y crear ambientes de producción de algunos software que utilizamos para cada compañía de Colombia, Estados Unidos, España y Latinoamérica.

HUB Docker : 

Software de Tickets Open Source , Version Community 
https://hub.docker.com/r/osticket/osticket 

Software de Monitoreo de Seguridad Pandora FMS, Versión Community 
https://hub.docker.com/r/pandorafms/pandorafms-open-stack-el8 

Software de Aprendizaje LMS - Moodle 
https://hub.docker.com/r/bitnami/moodle 

OpenKM Software de Gestión Documental 
https://hub.docker.com/r/openkm/openkm-ce 

Plataforma CMS Wordpress 
https://hub.docker.com/_/wordpress 

Plataforma CMS Drupal 
https://hub.docker.com/_/drupal 

Plataforma CMS Joomla 
https://hub.docker.com/_/joomla 

Software de Recursos Humanos 
https://hub.docker.com/r/bitnami/orangehrm 

Software Mesa de Ayuda GLPI 
https://hub.docker.com/r/jr0w3/glpi 

Software Liferay - Gestor de Contenido Empresarial 
https://hub.docker.com/r/liferay/portal 

Software Limesurvey - Software de Encuestas 
https://hub.docker.com/r/acspri/limesurvey 

Software Zimbra - Servidor de Email Empresarial 
https://hub.docker.com/r/rp70/zimbra 

Software Opencart 
https://hub.docker.com/r/bitnami/opencart 

Software Prestashop 
https://hub.docker.com/r/bitnami/prestashop 

Software Alfresco 
https://hub.docker.com/r/alfresco/alfresco-content-repository-community 

Software Suitecrm 
https://hub.docker.com/r/bitnami/suitecrm 

Software CRM Vtiger
https://hub.docker.com/r/websoft9dev/vtiger 

Software Foswiki 
https://hub.docker.com/r/timlegge/docker-foswiki 

Software Seafile 
https://manual.seafile.com/docker/deploy_seafile_with_docker/ 

Software OpenVPN
https://hub.docker.com/r/lthn/openvpn 

Software Monedero Virtual 
https://hub.docker.com/r/lthn/wallet