{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreievo2zbjg5sbb6clhs6uh4iuv4o5baxcnu5nzcihi3aoy2c2okzve",
"uri": "at://did:plc:qnlvqxxf6yadvrhl226p2aiz/app.bsky.feed.post/3mgnbqnx3lco2"
},
"coverImage": {
"$type": "blob",
"ref": {
"$link": "bafkreibchlvapnlapclgk4yugaeg7ohukgsnilzacjbulnkyv3laquhizy"
},
"mimeType": "image/png",
"size": 2216084
},
"description": "Docker es una de las herramientas más extendidas hoy día. Conoce qué es y de dónde viene, y más adelante nos adentraremos en su parte más técnica.",
"path": "/docker-101-introduccion-a-docker/",
"publishedAt": "2026-03-09T16:30:40.000Z",
"site": "https://blog.runesoft.net",
"tags": [
"Amazon ECS",
"Openshift",
"Container.d",
"Fundación Linux",
"este artículo",
"https://www.udemy.com/course/dive-into-cloud-native-containers-kubernetes-and-the-kcna",
"https://training.linuxfoundation.org/certification/kubernetes-cloud-native-associate/",
"https://www.udemy.com/course/docker-mastery",
"Container.d]([containerd – An industry-standard container runtime with an emphasis on simplicity, robustness and portability"
],
"textContent": "En este post cubriremos una de las primeras cuestiones más relevantes: ¿Qué es Docker?\nAunque de forma más teórica, considero importante conocer bien el espacio que ocupa Docker, y de dónde viene.\n\nEn posteriores publicaciones iremos profundizando en los aspectos más técnicos, como los siguientes:\n\n 1. Lanzar nuestro primer contenedor.\n 2. Crear y comprender el funcionamiento de los volúmenes.\n 3. Generar nuestras imágenes, entender las _layers_ y optimizaciones.\n 4. Comprender el funcionamiento de los repositorios de imágenes.\n 5. Crear nuestra aplicación compuesta con Docker Compose.\n 6. Configurar un clúster de Docker usando Swarm.\n\n\n\nAsí que este será el primero de un total de ocho publicaciones, con los que, al finalizar, habremos comprendido las bases de Docker, y nos permitirá sacarle el mejor provecho.\n\nPero ahora, ¡vamos a lo importante de este post!\n\n# ¿Qué es Docker?\n\nDocker es un sistema que nos va a permitir desplegar nuestras aplicaciones de forma más cómoda y sencilla, consumiendo menos recursos que anteriores métodos como el uso de máquinas virtuales.\n\nOtra gran ventaja de Docker, es que no entiende de sistemas operativos, por lo que, si tenemos un sistema de contenedores funcionando en nuestro servidor, no nos importará que tipo de Linux esté utilizando, o si es incluso un Windows.\n\n# Máquinas Virtuales VS Contenedores\n\nLas máquinas virtuales han estado presentes mucho tiempo, permitiendo generar entornos _sandbox_ en los que podíamos tener nuestras aplicaciones aisladas e independientes del sistema operativo anfitrión. De esta manera se simplificaba la generación de copias de seguridad y la restauración en ciertos puntos o estados de las aplicaciones.\nAdicionalmente aportaban una capa más de seguridad.\n\nPero con la llegada de la _contenerización_ esto se nos ha simplificado, ya que atomiza más si cabe la forma en la que se despliegan las aplicaciones.\n\n## Máquinas Virtuales\n\nLas máquinas virtuales hasta ahora, requieren funcionar sobre un sistema de virtualización, como VirtualBox; y sobre esto instalar un sistema operativo nuevamente, conocido como Sistema Operativo Virtual, el cual podía ser el que deseásemos.\n\nPor lo que las diferentes capas involucradas se pueden visualizar de la siguiente manera:\n\n * Los recursos hardware son gestionados por el sistema operativo anfitrión.\n * Este le permite el acceso en función de lo que necesite a la aplicación de virtualización.\n * La aplicación de virtualización gestiona los sistemas operativos virtualizados.\n * Y a su vez estos tienen sobre ellos las aplicaciones finales.\n\n\n\n## Hipervisores\n\nPosteriormente surgieron sistemas operativos dedicados a la virtualización, conocidos como _hipervisores_ (como el caso de Proxmox). De esta forma se simplifica el esquema, quitando una de las capas, quedando así.\n\nAhora las anteriores capas de **Sistema Operativo** y **Aplicación de Virtualización** se reúnen en una sola: **Sistema Operativo Hipervisor**.\n\n## Contenedores\n\nEl sistema de contenedores permite abstraer aún más, de forma que delega ciertos recursos que terminarían siendo redundantes al sistema operativo anfitrión. De esta manera, la red, por ejemplo, en el caso de Docker, es compartida con el sistema operativo en el que se encuentra.\n\nEl esquema quedaría de esta manera:\n\nAhora nos hemos quitado de golpe el sistema operativo virtual, de forma que es la aplicación contra el proceso de _contenerización_ , y posteriormente este el que solicita los recursos hardware necesarios al sistema operativo anfitrión.\n\n¡Se nos quedan muchas menos capas que con las máquinas virtuales inicialmente!\n\n# ¿Qué uso se le da hoy día?\n\nSi te dedicas al mundo de la informática, y, sobre todo, en los ámbitos de sistemas y programación, verás contenedores por todos lados, ya sea con Docker, como Kubernetes; hasta en proveedores en _Cloud_ como Amazon ECS u Openshift.\n\nEl principal punto de estos contenedores, es la facilidad de despliegue de nuevas aplicaciones, y su comodidad de gestión.\n\nLa mayoría de empresas optan por empaquetar sus productos en contenedores para que puedan ser desplegados donde vean más convenientes, ya que, como hemos mencionado, no dependen de un sistema operativo.\n\nAdemás, estos sistemas de contenedores tienen una muy fácil integración con aplicaciones de Integración contínua, que simplifica aún más los despliegues.\n\nEn el ámbito laboral, en lo que más uso le he dado, ha sido a la hora de poder tener mis entornos locales de prueba, como bases de datos, o incluso poder desplegar mis aplicaciones para probarlas antes de subirlas.\n\nPor otro lado, en el aspecto personal, en el _homelab_ , el uso es para poder desplegar y gestionar cómodamente los servicios que quiero tener funcionando, como los que vemos aquí en el blog, o en los diferentes vídeos del canal.\n\n# ¿Quién está detrás del proyecto?\n\nAhora, un poco de historia.\n\nLos contenedores llevan tiempo existiendo, y han habido diferentes intentos de estandarizarlos, pero quién logró llevar esto a su punto más conocido actualmente fue **Docker**.\n\nDe ahí que hoy día casi todo el mundo se refiera a los contenedores como Docker, pero **no son lo mismo**.\n\nDe hecho, actualmente el proyecto en sí de contenedores, conocido como Container.d, es gestionado por la Fundación Linux. Como se puede apreciar en este artículo, en en año 2017 fue cuando se traspasó el proyecto a la Fundación Linux.\n\nGracias a esto, el estándar de contenedores está protegido y es de código abierto. Eso si, no lo son las adaptaciones e interfaces que muchos conocemos, como puede ser **Docker Desktop**.\n\n# ¿Y si quiero certificarme?\n\nHay multitud de certificaciones hoy día, y cuesta saber cuáles son realmente reconocidas. Pero en este caso no tenemos ninguna duda, ya que los contenedores son un estándar en la mayoría de trabajos en nuestro campo, por lo que una certificación podría aportarte.\n\nA día de hoy, recomiendo que una vez finalices con Docker, te metas en el mundo de _Kubernetes_ , y entonces te prepares para la certificación del KCNA.\n\n⚠️\n\nAunque sigas todos los post que vaya publicando, te aconsejo que hagas un curso más reconocido y enfocado en ayudarte a formarte para los exámenes, como el que menciono a continuación.\n\n * Curso recomendado (inglés): https://www.udemy.com/course/dive-into-cloud-native-containers-kubernetes-and-the-kcna\n * Certificación KCNA: https://training.linuxfoundation.org/certification/kubernetes-cloud-native-associate/\n\n\n\n# Referencias\n\nListado de fuentes de información a la hora de realizar este post:\n\n * Mi propia experiencia personal y profesional en el sector.\n * Formación obtenida del curso: https://www.udemy.com/course/docker-mastery\n * Formación obtenida del curso: https://www.udemy.com/course/dive-into-cloud-native-containers-kubernetes-and-the-kcna\n * Web de la Fundación Linux.\n * Referencia del proyecto de Container.d]([containerd – An industry-standard container runtime with an emphasis on simplicity, robustness and portability)\n\n\n\n# Vídeo",
"title": "Docker 101 - Introducción a Docker",
"updatedAt": "2026-03-10T07:14:24.783Z"
}