{"id":9435,"date":"2019-12-13T19:35:30","date_gmt":"2019-12-13T18:35:30","guid":{"rendered":"https:\/\/blog.hostinger.io\/mx-tutoriales\/?p=9435"},"modified":"2026-03-10T16:28:37","modified_gmt":"2026-03-10T15:28:37","slug":"como-instalar-y-usar-docker-en-ubuntu","status":"publish","type":"post","link":"\/mx\/tutoriales\/como-instalar-y-usar-docker-en-ubuntu\/","title":{"rendered":"C\u00f3mo instalar Docker en Ubuntu de forma manual y con una plantilla VPS"},"content":{"rendered":"<p class=\"wp-block-paragraph\">Instalar Docker en Ubuntu te permite ejecutar contenedores para crear, probar y desplegar aplicaciones en un entorno limpio y consistente.<\/p><p class=\"wp-block-paragraph\">Para instalar Docker en Ubuntu, aseg&uacute;rate de que tu sistema est&aacute; ejecutando una versi&oacute;n compatible como Ubuntu <strong>22.04 <\/strong>LTS o <strong>24.04 <\/strong>LTS. A continuaci&oacute;n, sigue los pasos de instalaci&oacute;n manual para configurar los paquetes necesarios, a&ntilde;adir la clave GPG oficial de Docker e instalar Docker Engine.<\/p><p class=\"wp-block-paragraph\">Si eres cliente de Hostinger, puedes instalar Docker en tu VPS Ubuntu en tan s&oacute;lo unos clics utilizando nuestra plantilla preconfigurada.<\/p><p class=\"wp-block-paragraph\">Te vamos a guiar a trav&eacute;s de ambos m&eacute;todos, compartiremos consejos &uacute;tiles de configuraci&oacute;n de Docker despu&eacute;s de la instalaci&oacute;n, y demostraremos c&oacute;mo solucionar problemas comunes de configuraci&oacute;n.<\/p><h2 class=\"wp-block-heading\" id=\"h-requisitos-previos-para-instalar-docker-en-ubuntu\">Requisitos previos para instalar Docker en Ubuntu<\/h2><p class=\"wp-block-paragraph\">Antes de instalar Docker en Ubuntu, aseg&uacute;rate de que cumples los siguientes requisitos previos:<\/p><ul class=\"wp-block-list\">\n<li>Familiaridad con los conceptos b&aacute;sicos de Docker, que te ayudar&aacute;n a entender qu&eacute; est&aacute;s configurando y por qu&eacute; es importante cada paso.<\/li>\n\n\n\n<li>Conocimientos b&aacute;sicos de <a href=\"\/mx\/tutoriales\/linux-comandos\/\">comandos de Linux<\/a>, especialmente si est&aacute;s siguiendo el m&eacute;todo de instalaci&oacute;n manual, ya que tendr&aacute;s que ejecutar varios comandos en el terminal.<\/li>\n\n\n\n<li>Una versi&oacute;n de Ubuntu compatible, como Ubuntu <strong>22.04 <\/strong>LTS o Ubuntu <strong>24.04 <\/strong>LTS. Consulta siempre la documentaci&oacute;n oficial de Docker para conocer los &uacute;ltimos detalles de compatibilidad.<\/li>\n\n\n\n<li>Un sistema con al menos <strong>512 MB <\/strong>de RAM. Para un mejor rendimiento y uso en el mundo real, recomendamos instalar Docker en un sistema con al menos <strong>2 GB <\/strong>de RAM.<\/li>\n<\/ul><h2 class=\"wp-block-heading\" id=\"h-como-instalar-docker-manualmente\">C&oacute;mo instalar Docker manualmente<\/h2><p class=\"wp-block-paragraph\">Si prefieres un enfoque pr&aacute;ctico, esta secci&oacute;n te guiar&aacute; a trav&eacute;s de la instalaci&oacute;n manual de Docker en una distribuci&oacute;n de Ubuntu <strong>24.04<\/strong>. Los mismos pasos se aplican a otras versiones de Ubuntu compatibles, como la <strong>22.04<\/strong>.<\/p><h3 class=\"wp-block-heading\">1. Instalar todos los paquetes necesarios<\/h3><p class=\"wp-block-paragraph\">Para empezar a instalar Docker, comprueba que tu sistema est&aacute; actualizado y tiene instalados todos los paquetes necesarios.<\/p><ol class=\"wp-block-list\">\n<li>Abre tu terminal y con&eacute;ctate a tu VPS usando <a href=\"\/mx\/tutoriales\/que-es-ssh\/\">SSH<\/a>. Sustituye <strong>nombre_usuario <\/strong>y <strong>tu_servidor_ip <\/strong>por tus credenciales:<\/li>\n<\/ol><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ssh nombre_usuario@tu_servidor_ip<\/pre><ol start=\"2\" class=\"wp-block-list\">\n<li>Actualiza tu lista de paquetes para asegurarte de que tu servidor utiliza las versiones m&aacute;s recientes de los paquetes y sus dependencias:<\/li>\n<\/ol><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo apt update &amp;&amp; sudo apt upgrade -y<\/pre><ol start=\"3\" class=\"wp-block-list\">\n<li>Instala los paquetes necesarios para permitir que <strong>apt <\/strong>utilice repositorios sobre HTTPS:<\/li>\n<\/ol><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo apt install apt-transport-https ca-certificates curl software-properties-common -y<\/pre><figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/terminal-install-dependencies-2048x1138-1.png\/public\" alt=\"Vista de terminal con instalaci&oacute;n de dependencias\" class=\"wp-image-49418\"><\/figure><h3 class=\"wp-block-heading\">2. A&ntilde;adir la clave GPG oficial de Docker<\/h3><p class=\"wp-block-paragraph\">Para garantizar la autenticidad y seguridad de los paquetes de Docker, es necesario a&ntilde;adir la clave GPG oficial de Docker y configurar el repositorio de Docker.<\/p><ol class=\"wp-block-list\">\n<li>Ejecuta el siguiente <a href=\"\/mx\/tutoriales\/comando-curl\/\">comando cURL<\/a> para a&ntilde;adir la clave GPG de Docker:<\/li>\n<\/ol><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">curl -fsSL https:\/\/download.docker.com\/linux\/ubuntu\/gpg | sudo gpg --dearmor -o \/usr\/share\/keyrings\/docker-archive-keyring.gpg<\/pre><figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/terminal-curl-docker-2048x583-1.png\/public\" alt=\"Uso de cURL en Docker - Terminal\" class=\"wp-image-49419\"><\/figure><ol start=\"2\" class=\"wp-block-list\">\n<li>A&ntilde;ade el repositorio oficial de Docker a sus fuentes APT:<\/li>\n<\/ol><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">echo \"deb [arch=amd64 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 &gt; \/dev\/null<\/pre><ol start=\"3\" class=\"wp-block-list\">\n<li>Actualiza tu lista de paquetes para incluir los paquetes del nuevo repositorio:<\/li>\n<\/ol><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo apt update<\/pre><h3 class=\"wp-block-heading\">3. Instalar el motor Docker<\/h3><p class=\"wp-block-paragraph\">Con los repositorios necesarios configurados, ahora puedes proceder a instalar Docker Engine.s<\/p><ol class=\"wp-block-list\">\n<li>Aseg&uacute;rate de instalar Docker desde su repositorio oficial en lugar del repositorio por defecto de Ubuntu:<\/li>\n<\/ol><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">apt-cache policy docker-ce<\/pre><ol start=\"2\" class=\"wp-block-list\">\n<li>Ver&aacute;s la siguiente salida, indicando que Docker se instalar&aacute; desde el repositorio correcto:<\/li>\n<\/ol><figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/terminal-docker-ce-2048x1294-1.png\/public\" alt=\"Uso del comando docker-ce terminal\" class=\"wp-image-49420\"><\/figure><ol start=\"3\" class=\"wp-block-list\">\n<li>Ejecuta este comando para instalar Docker Engine, Docker Community Edition, y <strong>containerd <\/strong>runtime, todos ellos necesarios para ejecutar contenedores Docker:<\/li>\n<\/ol><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo apt install docker-ce docker-ce-cli containerd.io -y<\/pre><ol start=\"4\" class=\"wp-block-list\">\n<li>Aseg&uacute;rate de que Docker se inicia autom&aacute;ticamente al arrancar el sistema:<\/li>\n<\/ol><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo systemctl enable docker<\/pre><h3 class=\"wp-block-heading\">4. Verificar la instalaci&oacute;n de Docker<\/h3><p class=\"wp-block-paragraph\">Despu&eacute;s de instalar Docker, comprueba que la instalaci&oacute;n se ha realizado correctamente y que Docker se est&aacute; ejecutando sin problemas.<\/p><ol class=\"wp-block-list\">\n<li>Confirma la versi&oacute;n de Docker instalada en tu sistema:<\/li>\n<\/ol><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker --version<\/pre><ol start=\"2\" class=\"wp-block-list\">\n<li>Esta es la salida esperada:<\/li>\n<\/ol><figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/terminal-docker-version.png\/public\" alt=\"Versi&oacute;n de Docker en la terminal\" class=\"wp-image-49421\"><\/figure><ol start=\"3\" class=\"wp-block-list\">\n<li>Utiliza el siguiente comando para comprobar el estado del servicio de Docker:<\/li>\n<\/ol><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo systemctl status docker<\/pre><ol start=\"4\" class=\"wp-block-list\">\n<li>Deber&iacute;as ver una salida indicando que Docker est&aacute; activo y ejecut&aacute;ndose:<\/li>\n<\/ol><figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/terminal-systemctl-docker-active-running-highlighted-2048x1107-1.png\/public\" alt=\"Uso del comando sudo systemctl status docker\" class=\"wp-image-49422\"><\/figure><ol start=\"5\" class=\"wp-block-list\">\n<li>Pulsa <strong>Q <\/strong>en tu teclado para salir de esta pantalla de estado.<\/li>\n<\/ol><h3 class=\"wp-block-heading\">5. Ejecutar Docker sin sudo (opcional)<\/h3><p class=\"wp-block-paragraph\">Por defecto, Docker s&oacute;lo te permite ejecutar sus comandos como usuario root o con privilegios <strong>sudo<\/strong>, lo que puede ser inconveniente y potencialmente menos seguro. Si intentas ejecutar los comandos de Docker como un usuario no root, te encontrar&aacute;s con este error:<\/p><figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/terminal-docker-permission-denied-2048x180-1.png\/public\" alt=\"Permiso denegado - terminal Docker\" class=\"wp-image-49423\"><\/figure><p class=\"wp-block-paragraph\">Sin embargo, ejecutar Docker sin <strong>sudo <\/strong>es preferible porque es m&aacute;s r&aacute;pido y mejora la eficiencia del flujo de trabajo. Por eso sugerimos crear un usuario dedicado para ejecutar Docker sin privilegios elevados.<\/p><ol class=\"wp-block-list\">\n<li>A&ntilde;ade un nuevo usuario si no tienes uno. Aqu&iacute;, lo nombramos <strong>nuevo_usuario<\/strong>:<\/li>\n<\/ol><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo adduser nuevo_usuario<\/pre><ol start=\"2\" class=\"wp-block-list\">\n<li>Se te pedir&aacute; que establezcas una nueva contrase&ntilde;a para este usuario.<\/li>\n\n\n\n<li>Ejecuta el siguiente comando para crear el grupo <strong>docker<\/strong>:<\/li>\n<\/ol><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo groupadd docker<\/pre><ol start=\"4\" class=\"wp-block-list\">\n<li>A&ntilde;ade <strong>nuevo_usuario <\/strong>al grupo <strong>docker<\/strong>:<\/li>\n<\/ol><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo usermod -aG docker nuevo_usuario<\/pre><ol start=\"5\" class=\"wp-block-list\">\n<li>Cambia al usuario reci&eacute;n creado:<\/li>\n<\/ol><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">su - nuevo_usuario<\/pre><ol start=\"6\" class=\"wp-block-list\">\n<li>Comprueba que este usuario forma parte del grupo <strong>docker<\/strong>:<\/li>\n<\/ol><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">groups<\/pre><ol start=\"7\" class=\"wp-block-list\">\n<li>Aqu&iacute; est&aacute; la salida:<\/li>\n<\/ol><div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/terminal-user-groups.png\/public\" alt=\"Comando grupos en el terminal\" class=\"wp-image-49424\"><\/figure><\/div><ol start=\"8\" class=\"wp-block-list\">\n<li>Ejecuta un simple comando Docker para verificar que puedes ejecutar comandos sin <strong>sudo<\/strong>:<\/li>\n<\/ol><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker run hello-world<\/pre><ol start=\"9\" class=\"wp-block-list\">\n<li>Deber&iacute;as ver una salida que muestra que Docker se est&aacute; ejecutando correctamente como usuario no root:<\/li>\n<\/ol><figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/terminal-docker-run-2048x1257-1.png\/public\" alt=\"Terminal Docker funcionando\" class=\"wp-image-49425\"><\/figure><p class=\"wp-block-paragraph\">&iexcl;Enhorabuena! Has configurado con &eacute;xito Docker manualmente en un VPS Ubuntu utilizando comandos.<\/p><h2 class=\"wp-block-heading\" id=\"h-como-instalar-docker-en-ubuntu-usando-la-plantilla-vps-de-hostinger\">C&oacute;mo instalar Docker en Ubuntu usando la plantilla VPS de Hostinger<\/h2><p class=\"wp-block-paragraph\">Utilizar la plantilla preconfigurada de Hostinger es la forma m&aacute;s sencilla de instalar Docker en tu VPS Ubuntu. Si eliges el <a href=\"\/mx\/docker-hosting\">plan de alojamiento VPS Docker<\/a>, la plantilla se seleccionar&aacute; autom&aacute;ticamente, por lo que puedes comenzar a desplegar aplicaciones en contenedores de inmediato.<\/p><p class=\"wp-block-paragraph\">Si eres un cliente de alojamiento VPS regular, no te preocupes. Puedes instalar Docker con unos pocos clics seleccionando la plantilla tu mismo. Estos son los pasos:<\/p><ol class=\"wp-block-list\">\n<li>Inicia sesi&oacute;n en hPanel y navega a <strong>VPS &rarr; Administrar <\/strong>junto a tu servidor.<\/li>\n\n\n\n<li>Desde el panel de control del VPS, ve a <strong>SO y Panel &rarr; Sistema operativo <\/strong>en la barra lateral izquierda.<\/li>\n\n\n\n<li>Busca la secci&oacute;n <strong>Cambiar SO<\/strong>, escribe <strong>Docker <\/strong>en la barra de b&uacute;squeda y, a continuaci&oacute;n, selecciona la plantilla <strong>Docker<\/strong>.<\/li>\n<\/ol><figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/cambiar-so-hpanel.png\/public\" alt=\"Cambiar sistema operativo de VPS en hPanel\" class=\"wp-image-49428\"><\/figure><ol start=\"4\" class=\"wp-block-list\">\n<li>Sigue las instrucciones en pantalla y espera a que finalice el proceso de instalaci&oacute;n, que suele tardar unos <strong>10 minutos<\/strong>.<\/li>\n<\/ol><p class=\"wp-block-paragraph\">&iexcl;Ya est&aacute;! Has instalado Docker en tu VPS y est&aacute;s listo para desplegar aplicaciones.<\/p><figure class=\"wp-block-image size-large\"><a href=\"\/mx\/servidor-vps\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/39\/2023\/02\/ES-VPS-hosting_in-text-banner.png\/w=1024,h=1024,fit=scale-down\" alt=\"\" class=\"wp-image-29287\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/39\/2023\/02\/ES-VPS-hosting_in-text-banner.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/39\/2023\/02\/ES-VPS-hosting_in-text-banner.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/39\/2023\/02\/ES-VPS-hosting_in-text-banner.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/39\/2023\/02\/ES-VPS-hosting_in-text-banner.png\/w=768,fit=scale-down 768w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/39\/2023\/02\/ES-VPS-hosting_in-text-banner.png\/w=1536,fit=scale-down 1536w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><h2 class=\"wp-block-heading\" id=\"h-consejos-de-configuracion-de-docker\">Consejos de configuraci&oacute;n de Docker<\/h2><p class=\"wp-block-paragraph\">Despu&eacute;s de instalar Docker en Ubuntu, t&oacute;mate un tiempo para aprender los comandos principales y las configuraciones &uacute;tiles a continuaci&oacute;n para sacarle el m&aacute;ximo partido.<\/p><h3 class=\"wp-block-heading\">1. Aprende los comandos b&aacute;sicos de Docker<\/h3><p class=\"wp-block-paragraph\">Empieza por dominar los <a href=\"\/mx\/tutoriales\/comandos-docker\/\">comandos esenciales de Docker<\/a> para interactuar con im&aacute;genes y contenedores. De esta forma, podr&aacute;s buscar y extraer im&aacute;genes precompiladas como <strong>nginx<\/strong>, <strong>node <\/strong>o <strong>mysql <\/strong>para lanzar servicios r&aacute;pidamente sin necesidad de instalar nada manualmente.<\/p><ul class=\"wp-block-list\">\n<li><strong>Lista im&aacute;genes<\/strong>:<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker images<\/pre><ul class=\"wp-block-list\">\n<li><strong>Busca im&aacute;genes en Docker Hub<\/strong>:<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker search nginx<\/pre><ul class=\"wp-block-list\">\n<li><strong>Descarga una imagen<\/strong>:<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker pull nginx<\/pre><h3 class=\"wp-block-heading\">2. Ejecutar y gestionar contenedores<\/h3><p class=\"wp-block-paragraph\">Una vez que tengas una imagen, puedes lanzar y controlar contenedores usando los siguientes comandos. El siguiente ejemplo ejecuta un servidor NGINX en contenedor en el puerto <strong>8080<\/strong>. Esto es perfecto para probar sitios web est&aacute;ticos localmente o construir proxies inversos para tus aplicaciones.<\/p><ul class=\"wp-block-list\">\n<li><strong>Ejecuta un contenedor<\/strong>:<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker run -d --name webserver -p 8080:80 nginx<\/pre><ul class=\"wp-block-list\">\n<li><a href=\"\/mx\/tutoriales\/como-crear-contenedor-docker\/\">Iniciar tu primer contenedor<\/a>:<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker start webserver<\/pre><ul class=\"wp-block-list\">\n<li><strong>Det&eacute;n un contenedor en ejecuci&oacute;n<\/strong>:<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker stop webserver<\/pre><ul class=\"wp-block-list\">\n<li><strong>Lista contenedores en ejecuci&oacute;n<\/strong>:<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker ps<\/pre><h3 class=\"wp-block-heading\">3. Crear y compartir tus propias im&aacute;genes<\/h3><p class=\"wp-block-paragraph\">Puedes crear tus propias im&aacute;genes utilizando un Dockerfile y compartirlas con otros. Un caso de uso es empaquetar tu aplicaci&oacute;n Node.js, Python o Go en una imagen reutilizable y desplegarla en diferentes entornos o compartirla con tu equipo.<\/p><ul class=\"wp-block-list\">\n<li><strong>Construye una imagen desde el directorio actual<\/strong>:<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker build -t mi-app .<\/pre><ul class=\"wp-block-list\">\n<li><strong>Etiqueta la imagen<\/strong>:<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker tag mi-app tu-nombre-de-usuario\/mi-app:latest<\/pre><ul class=\"wp-block-list\">\n<li><strong>Empuja la imagen a Docker Hub<\/strong>:<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker push tu-nombre-de-usuario\/mi-app:latest<\/pre><h3 class=\"wp-block-heading\">4. Limpiar los componentes no utilizados<\/h3><p class=\"wp-block-paragraph\">Limpia los recursos Docker que ya no necesites para evitar un uso innecesario del disco. Esto ayuda a liberar espacio y reducir el desorden de las ejecuciones de prueba o construcciones temporales.<\/p><ul class=\"wp-block-list\">\n<li>Elimina las im&aacute;genes Docker no utilizadas:<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker image prune<\/pre><ul class=\"wp-block-list\">\n<li><strong>Elimina contenedores detenidos<\/strong>:<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker container prune<\/pre><ul class=\"wp-block-list\">\n<li><strong>Elimina vol&uacute;menes y redes no utilizados<\/strong>:<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker volume prune\ndocker network prune<\/pre><h3 class=\"wp-block-heading\">5. Utilizar Docker Compose para aplicaciones multicontenedor<\/h3><p class=\"wp-block-paragraph\">Docker Compose te permite definir y gestionar entornos multiservicio utilizando un &uacute;nico archivo <strong>docker-compose.yml<\/strong>.<\/p><ul class=\"wp-block-list\">\n<li><strong>Ejemplo<\/strong>: ejecuta r&aacute;pidamente WordPress como un contenedor Docker para pruebas locales:<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">version: '3.8'\n\n\nservices:\n  db:\n    image: mysql:5.7\n    restart: always\n    environment:\n      MYSQL_DATABASE: wordpress\n      MYSQL_USER: wp_user\n      MYSQL_PASSWORD: wp_pass\n      MYSQL_ROOT_PASSWORD: example\n    volumes:\n      - db_data:\/var\/lib\/mysql\n\n\n  web:\n    image: wordpress\n    restart: always\n    ports:\n      - \"8080:80\"\n    environment:\n      WORDPRESS_DB_HOST: db:3306\n      WORDPRESS_DB_NAME: wordpress\n      WORDPRESS_DB_USER: wp_user\n      WORDPRESS_DB_PASSWORD: wp_pass\n    depends_on:\n      - db\n\n\nvolumes:\n  db_data:<\/pre><ul class=\"wp-block-list\">\n<li><strong>Inicia todos los servicios<\/strong>:<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker-compose up -d<\/pre><h3 class=\"wp-block-heading\">6. Crear entornos de desarrollo aislados<\/h3><p class=\"wp-block-paragraph\">Utiliza Docker para evitar contaminar tu sistema con m&uacute;ltiples versiones de idiomas o dependencias. Esto es &uacute;til para probar paquetes, escribir scripts o crear aplicaciones en un contenedor aislado, todo ello sin cambiar la configuraci&oacute;n del host.<\/p><ul class=\"wp-block-list\">\n<li><strong>Ejemplo<\/strong>: utiliza Docker para ejecutar un entorno Node.js sin instalar Node localmente:<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker run -it --rm node:18 bash<\/pre><h3 class=\"wp-block-heading\">7. Automatizar compilaciones y pruebas en CI\/CD<\/h3><p class=\"wp-block-paragraph\">Docker es ampliamente compatible con herramientas de CI como GitHub Actions, GitLab CI\/CD y Jenkins. Puedes contenerizar tu aplicaci&oacute;n y ejecutarla de forma consistente en desarrollo, staging y producci&oacute;n.<\/p><ul class=\"wp-block-list\">\n<li><strong>Ejemplo<\/strong>: utiliza una imagen Docker en tu canal de GitHub Actions para automatizar las pruebas:<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">jobs:\n  build:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions\/checkout@v3\n      - run: docker build -t my-app .\n      - run: docker run my-app npm test<\/pre><h3 class=\"wp-block-heading\">8. Alojar servidores web o APIs localmente<\/h3><p class=\"wp-block-paragraph\">Puedes ejecutar servidores web completos o APIs dentro de contenedores para probar tus aplicaciones sin desplegarlas externamente. Esto es ideal para desarrolladores front-end que necesitan servir activos est&aacute;ticos o probar dominios locales sin configurar un servidor de desarrollo completo.<\/p><ul class=\"wp-block-list\">\n<li><strong>Ejemplo<\/strong>: ejecutar un servidor Apache b&aacute;sico localmente:<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker run -d -p 8080:80 httpd<\/pre><h2 class=\"wp-block-heading\" id=\"h-resolver-problemas-comunes-al-instalar-docker\">Resolver problemas comunes al instalar Docker<\/h2><p class=\"wp-block-paragraph\">La instalaci&oacute;n de Docker en Ubuntu suele realizarse sin problemas, pero pueden producirse algunos errores dependiendo de la instalaci&oacute;n, la configuraci&oacute;n del sistema o los permisos de usuario.&nbsp;<\/p><p class=\"wp-block-paragraph\">A continuaci&oacute;n se presentan problemas comunes, junto con soluciones sencillas y comandos para ayudarte a depurar r&aacute;pidamente.<\/p><h3 class=\"wp-block-heading\">1. El daemon Docker no se ejecuta<\/h3><p class=\"wp-block-paragraph\">Un mensaje de error como &ldquo;No se puede conectar al daemon Docker&rdquo; suele indicar que el servicio Docker no est&aacute; activo.<\/p><ul class=\"wp-block-list\">\n<li><strong>Inicia el servicio<\/strong>:<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo systemctl start docker<\/pre><ul class=\"wp-block-list\">\n<li><strong>Habilitalo para que se inicie en el arranque<\/strong>:<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo systemctl enable docker<\/pre><ul class=\"wp-block-list\">\n<li><strong>Comprueba el estado del daemon<\/strong>:<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo systemctl status docker<\/pre><p class=\"wp-block-paragraph\">Si Docker sigue sin iniciarse, comprueba los registros usando journalctl:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">journalctl -u docker.service<\/pre><p class=\"wp-block-paragraph\">Busca errores como archivos de configuraci&oacute;n faltantes, conflictos de puertos o problemas con el controlador de almacenamiento.<\/p><h3 class=\"wp-block-heading\">2. No se puede conectar al socket Docker<\/h3><p class=\"wp-block-paragraph\">Si ves &ldquo;Se ha denegado el permiso al intentar conectarse al socket del daemon Docker&rdquo;, es probable que sea un problema de permisos de usuario.<\/p><ul class=\"wp-block-list\">\n<li><strong>Comprueba si tu usuario est&aacute; en el grupo docker<\/strong>:<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">groups<\/pre><ul class=\"wp-block-list\">\n<li><strong>A&ntilde;ade tu usuario al grupo<\/strong>:<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo usermod -aG docker user<\/pre><p class=\"wp-block-paragraph\">A continuaci&oacute;n, cierra la sesi&oacute;n y vuelve a entrar como ese usuario.<\/p><ul class=\"wp-block-list\">\n<li><strong>Reinicia el servicio Docker<\/strong>:<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo systemctl restart docker<\/pre><h3 class=\"wp-block-heading\">3. Problemas con el repositorio y la instalaci&oacute;n<\/h3><p class=\"wp-block-paragraph\">Si encuentras problemas al a&ntilde;adir el repositorio de Docker APT o al instalar paquetes, puede deberse a:<\/p><ul class=\"wp-block-list\">\n<li>URL de repositorio incorrecta.<\/li>\n\n\n\n<li>Faltan dependencias.<\/li>\n\n\n\n<li>Versi&oacute;n de Ubuntu no soportada.<\/li>\n<\/ul><p class=\"wp-block-paragraph\">Aseg&uacute;rate de que has a&ntilde;adido el repositorio correcto:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">curl -fsSL https:\/\/download.docker.com\/linux\/ubuntu\/gpg | sudo gpg --dearmor -o \/etc\/apt\/keyrings\/docker.gpg<\/pre><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">echo \n  \"deb [arch=$(dpkg --print-architecture) signed-by=\/etc\/apt\/keyrings\/docker.gpg] \n  https:\/\/download.docker.com\/linux\/ubuntu $(lsb_release -cs) stable\" | \n  sudo tee \/etc\/apt\/sources.list.d\/docker.list &gt; \/dev\/null<\/pre><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo apt update<\/pre><p class=\"wp-block-paragraph\">Si <strong>apt update <\/strong>falla, comprueba la salida en busca de entradas malformadas o errores de clave GPG.<\/p><h3 class=\"wp-block-heading\">4. Los contenedores en ejecuci&oacute;n no responden<\/h3><p class=\"wp-block-paragraph\">Si tu contenedor se inicia pero no se comporta como esperas, intenta lo siguiente:<\/p><ul class=\"wp-block-list\">\n<li><strong>Consulta los registros del contenedor<\/strong>:<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker logs nombre_contenedor<\/pre><ul class=\"wp-block-list\">\n<li><strong>Comprueba la salud del contenedor si est&aacute; definida<\/strong>:<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker inspect --format='{{json .State.Health}}' nombre_contenedor<\/pre><ul class=\"wp-block-list\">\n<li><strong>Reinicia el contenedor<\/strong>:<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker restart nombre_contenedor<\/pre><p class=\"wp-block-paragraph\">Alternativamente, los usuarios de Hostinger VPS pueden pedir al <strong>Asistente de IA Kodee <\/strong>que compruebe los registros de sus contenedores. Simplemente escribe: &ldquo;&iquest;Puedes comprobar los registros del contenedor [nombre_del_contenedor]?&rdquo; como en este ejemplo:<\/p><figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/kodee-hostinger-scaled.png\/public\" alt=\"Ejemplo de uso de Kodee en hPanel\" class=\"wp-image-49435\"><\/figure><h3 class=\"wp-block-heading\">5. Cortafuegos y problemas de red<\/h3><p class=\"wp-block-paragraph\">Docker utiliza varios puertos internamente. Si tienes un cortafuegos activado, como <a href=\"\/mx\/tutoriales\/como-configurar-firewall-ubuntu\/\">Uncomplicated Firewall (UFW)<\/a>, puede que estos puertos est&eacute;n bloqueados.<\/p><ul class=\"wp-block-list\">\n<li><strong>Permite el tr&aacute;fico relacionado con Docker con UFW<\/strong>:<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo ufw allow 2375\/tcp\nsudo ufw allow 2376\/tcp\nsudo ufw allow 2377\/tcp\nsudo ufw allow 7946\/tcp\nsudo ufw allow 7946\/udp\nsudo ufw allow 4789\/udp<\/pre><ul class=\"wp-block-list\">\n<li><strong>Comprueba si Docker puede resolver DNS<\/strong>:<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker run busybox nslookup google.com<\/pre><p class=\"wp-block-paragraph\">Si esto falla, puede que tu red de contenedores est&eacute; mal configurada.<\/p><ul class=\"wp-block-list\">\n<li><strong>Vuelve a crear la red puente por defecto<\/strong>:<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker network rm bridge\ndocker network create --driver bridge bridge<\/pre><p class=\"wp-block-paragraph\">        <div class=\"protip\">\n            <div class=\"protip__heading\">\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                    <path d=\"M1.49234 23.5024C1.23229 23.5024 0.972242 23.4024 0.782206 23.2123C0.562165 22.9923 0.452144 22.6822 0.502153 22.3722C0.562165 21.9221 1.14227 17.9113 3.00262 16.351C3.63274 15.8209 4.43289 15.5509 5.26305 15.5609C6.09321 15.5909 6.87335 15.9109 7.47347 16.4911C8.6937 17.6913 8.76371 19.6717 7.6435 20.9919C6.0832 22.8523 2.08245 23.4324 1.63237 23.4924C1.59236 23.4924 1.54235 23.4924 1.50234 23.4924L1.49234 23.5024ZM5.16303 17.5613C4.84297 17.5613 4.53291 17.6713 4.29287 17.8813C3.60274 18.4614 3.07264 19.9317 2.75258 21.242C4.06282 20.9219 5.5331 20.3918 6.11321 19.7017C6.55329 19.1716 6.54329 18.3814 6.0832 17.9213C5.85316 17.7013 5.5431 17.5713 5.20304 17.5613C5.19304 17.5613 5.17303 17.5613 5.16303 17.5613ZM11.7243 21.8821C11.4942 21.8821 11.2642 21.8021 11.0841 21.652C10.8541 21.462 10.7241 21.1819 10.7241 20.8819V15.9109L8.08358 13.2705H3.11264C2.81259 13.2705 2.53254 13.1404 2.3425 12.9104C2.15246 12.6803 2.07245 12.3803 2.12246 12.0902C2.19247 11.7102 2.84259 8.36953 4.70294 7.12929C6.33325 6.04909 8.96375 6.49918 10.244 6.80923C11.5442 4.96889 13.2546 3.4286 15.2349 2.33839C17.4553 1.11816 19.9858 0.518051 22.4963 0.498047C23.0464 0.498047 23.4865 0.948132 23.4865 1.49824C23.4865 5.0389 22.3763 9.97983 17.1753 13.7605C17.4853 15.0408 17.9354 17.6613 16.8552 19.2816C15.615 21.1419 12.2744 21.7921 11.8943 21.8621C11.8343 21.8721 11.7743 21.8821 11.7143 21.8821H11.7243ZM12.7245 16.181V19.6016C13.7146 19.2916 14.7948 18.7915 15.2049 18.1814C15.675 17.4812 15.605 16.091 15.385 14.9008C14.5248 15.3808 13.6346 15.8109 12.7245 16.181ZM9.66388 12.0302L11.9643 14.3307C13.1845 13.8306 14.3648 13.2204 15.485 12.5103C19.9358 9.51974 21.2361 5.60901 21.4561 2.53843C19.6157 2.67846 17.8254 3.20856 16.2051 4.09872C14.2847 5.14892 12.6544 6.68921 11.4942 8.54956C10.7841 9.65977 10.174 10.82 9.66388 12.0302ZM4.39289 11.2701H7.81353C8.1936 10.3599 8.63368 9.46974 9.11377 8.60957C7.92355 8.38953 6.51329 8.31952 5.81315 8.78961C5.19304 9.19968 4.70294 10.3099 4.39289 11.2701Z\" fill=\"#673DE6\"\/>\n                <\/svg>\n                <p class=\"protip__title\">\n                    Gesti&oacute;n del cortafuegos con Kodee                <\/p>\n            <\/div>\n            <p class=\"protip__content\">Tambi&eacute;n puedes pedirle <strong>a Kodee <\/strong>que establezca nuevas reglas de firewall en tu VPS. Simplemente escribe: \"Establece nuevas reglas de firewall que abran el puerto 2375, 2376, 2377, 7946 TCP y 7946, 4789 UDP a cualquier direcci&oacute;n IP.\"<\/p>\n                    <\/div>\n        <\/p><h3 class=\"wp-block-heading\">6. Rendimiento lento de Docker<\/h3><p class=\"wp-block-paragraph\">Si Docker se siente lento, como por ejemplo, si la extracci&oacute;n de im&aacute;genes es lenta o los contenedores se retrasan, prueba estos pasos para solucionar el problema.<\/p><ul class=\"wp-block-list\">\n<li><strong>Comprueba el espacio en disco<\/strong>:<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">df -h<\/pre><ul class=\"wp-block-list\">\n<li><strong>Comprueba el uso del sistema Docker<\/strong>:<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker system df<\/pre><ul class=\"wp-block-list\">\n<li><strong>Lista contenedores o vol&uacute;menes pesados<\/strong>:<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker ps -s\ndocker volume ls<\/pre><p class=\"wp-block-paragraph\">Si ninguno de los pasos anteriores funciona, intenta limpiar los contenedores, redes, im&aacute;genes y cach&eacute; de compilaci&oacute;n no utilizados para mejorar el rendimiento:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker system prune -a<\/pre><h3 class=\"wp-block-heading\">7. Errores de seguridad o AppArmor<\/h3><p class=\"wp-block-paragraph\">En algunas configuraciones de Ubuntu, Docker puede fallar al iniciar contenedores debido a conflictos con m&oacute;dulos de seguridad, como AppArmor.<\/p><ul class=\"wp-block-list\">\n<li><strong>Comprueba si hay denegaciones de AppArmor<\/strong>:<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">dmesg | grep apparmor<\/pre><ul class=\"wp-block-list\">\n<li><strong>Deshabilita temporalmente AppArmor para un contenedor<\/strong>:<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker run --security-opt apparmor=unconfined tu_imagen<\/pre><p class=\"wp-block-paragraph\">Ten en cuenta que no se recomienda desactivar AppArmor en un entorno de producci&oacute;n. Si lo haces, aseg&uacute;rate de que no est&aacute;s anulando involuntariamente funciones importantes de seguridad del kernel.<\/p><p class=\"wp-block-paragraph\">Si estos errores persisten, comprueba los registros del sistema en <strong>\/var\/log\/syslog<\/strong>.<\/p><h2 class=\"wp-block-heading\" id=\"h-que-sigue-despues-de-instalar-docker-en-ubuntu\">&iquest;Qu&eacute; sigue despu&eacute;s de instalar Docker en Ubuntu?<\/h2><p class=\"wp-block-paragraph\">Instalar Docker en Ubuntu te da la flexibilidad para desplegar, probar y enviar software con menos dolores de cabeza, tanto si est&aacute;s ejecutando aplicaciones localmente como gestionando cargas de trabajo de producci&oacute;n.<\/p><p class=\"wp-block-paragraph\">Pero la instalaci&oacute;n es s&oacute;lo el principio. Para beneficiarte realmente de Docker, explora c&oacute;mo encajan los contenedores en tu flujo de trabajo a largo plazo:<\/p><ul class=\"wp-block-list\">\n<li>Encuentra casos de uso de Docker en el mundo real, como la ejecuci&oacute;n de aplicaciones web, bases de datos o canalizaciones de CI y obt&eacute;n ideas para aplicarlas en tus propios proyectos.<\/li>\n\n\n\n<li>Utiliza docker exec para interactuar con contenedores en ejecuci&oacute;n mediante la ejecuci&oacute;n de comandos directamente para la depuraci&oacute;n, configuraci&oacute;n o actualizaciones en vivo, todo sin reiniciar nada.<\/li>\n\n\n\n<li>Manejar los secretos de Docker de forma segura evitando contrase&ntilde;as o tokens codificados y pasando datos sensibles de forma segura durante la construcci&oacute;n o el tiempo de ejecuci&oacute;n.<\/li>\n\n\n\n<li>Configura Docker Swarm para que la orquestaci&oacute;n escale tus aplicaciones m&aacute;s all&aacute; de los contenedores individuales y gestione un cl&uacute;ster multinodo de forma eficiente con equilibrio de carga integrado.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Instalar Docker en Ubuntu te permite ejecutar contenedores para crear, probar y desplegar aplicaciones en un entorno limpio y consistente. Para instalar Docker en Ubuntu, aseg&uacute;rate de que tu sistema est&aacute; ejecutando una versi&oacute;n compatible como Ubuntu 22.04 LTS o 24.04 LTS. A continuaci&oacute;n, sigue los pasos de instalaci&oacute;n manual para configurar los paquetes necesarios, [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/mx\/tutoriales\/como-instalar-y-usar-docker-en-ubuntu\/\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":138,"featured_media":45809,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"rank_math_title":"Instalar Docker En Ubuntu en %currentyear% - Tutorial Paso A Paso %page%","rank_math_description":"Docker es una de las herramientas m\u00e1s c\u00f3modas para ejecutar una aplicaci\u00f3n. Aprende a instalar y c\u00f3mo usar Docker en Ubuntu.","rank_math_focus_keyword":"instalar docker ubuntu","footnotes":""},"categories":[5700],"tags":[11637],"class_list":["post-9435","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-vps","tag-instalar-docker-ubuntu"],"hreflangs":[{"locale":"en-US","link":"https:\/\/www.hostinger.com\/tutorials\/how-to-install-docker-on-ubuntu\/","default":1},{"locale":"pt-BR","link":"https:\/\/www.hostinger.com\/br\/tutoriais\/instalar-docker-ubuntu\/","default":0},{"locale":"fr-FR","link":"https:\/\/www.hostinger.com\/fr\/tutoriels\/installer-docker-sur-ubuntu\/","default":0},{"locale":"es-ES","link":"https:\/\/www.hostinger.com\/es\/tutoriales\/como-instalar-y-usar-docker-en-ubuntu\/","default":0},{"locale":"id-ID","link":"https:\/\/www.hostinger.com\/id\/tutorial\/cara-install-docker-ubuntu\/","default":0},{"locale":"de-DE","link":"https:\/\/www.hostinger.com\/de\/tutorials\/docker-auf-ubuntu-installieren\/","default":0},{"locale":"it-IT","link":"https:\/\/www.hostinger.com\/it\/tutorial\/come-installare-docker-ubuntu\/","default":0},{"locale":"en-PH","link":"https:\/\/www.hostinger.com\/ph\/tutorials\/how-to-install-docker-on-ubuntu\/","default":0},{"locale":"en-MY","link":"https:\/\/www.hostinger.com\/my\/tutorials\/how-to-install-docker-on-ubuntu\/","default":0},{"locale":"en-GB","link":"https:\/\/www.hostinger.com\/uk\/tutorials\/how-to-install-docker-on-ubuntu\/","default":0},{"locale":"en-IN","link":"https:\/\/www.hostinger.com\/in\/tutorials\/how-to-install-docker-on-ubuntu\/","default":0},{"locale":"en-CA","link":"https:\/\/www.hostinger.com\/ca\/tutorials\/how-to-install-docker-on-ubuntu\/","default":0},{"locale":"en-AU","link":"https:\/\/www.hostinger.com\/au\/tutorials\/how-to-install-docker-on-ubuntu\/","default":0},{"locale":"en-NG","link":"https:\/\/www.hostinger.com\/ng\/tutorials\/how-to-install-docker-on-ubuntu\/","default":0},{"locale":"es-AR","link":"https:\/\/www.hostinger.com\/ar\/tutoriales\/como-instalar-y-usar-docker-en-ubuntu\/","default":0},{"locale":"es-MX","link":"https:\/\/www.hostinger.com\/mx\/tutoriales\/como-instalar-y-usar-docker-en-ubuntu\/","default":0},{"locale":"es-CO","link":"https:\/\/www.hostinger.com\/co\/tutoriales\/como-instalar-y-usar-docker-en-ubuntu\/","default":0},{"locale":"pt-PT","link":"https:\/\/www.hostinger.com\/pt\/tutoriais\/instalar-docker-ubuntu\/","default":0}],"acf":[],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/mx\/tutoriales\/wp-json\/wp\/v2\/posts\/9435","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/mx\/tutoriales\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/mx\/tutoriales\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/mx\/tutoriales\/wp-json\/wp\/v2\/users\/138"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/mx\/tutoriales\/wp-json\/wp\/v2\/comments?post=9435"}],"version-history":[{"count":24,"href":"https:\/\/www.hostinger.com\/mx\/tutoriales\/wp-json\/wp\/v2\/posts\/9435\/revisions"}],"predecessor-version":[{"id":45805,"href":"https:\/\/www.hostinger.com\/mx\/tutoriales\/wp-json\/wp\/v2\/posts\/9435\/revisions\/45805"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/mx\/tutoriales\/wp-json\/wp\/v2\/media\/45809"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/mx\/tutoriales\/wp-json\/wp\/v2\/media?parent=9435"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/mx\/tutoriales\/wp-json\/wp\/v2\/categories?post=9435"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/mx\/tutoriales\/wp-json\/wp\/v2\/tags?post=9435"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}