Docker Colombia
7th Mar 2023Es 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.
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
- Inicie sesión para enviar comentarios