{"id":9435,"date":"2019-12-13T19:35:30","date_gmt":"2019-12-13T18:35:30","guid":{"rendered":"https:\/\/blog.hostinger.io\/es-tutoriales\/?p=9435"},"modified":"2025-12-05T00:28:03","modified_gmt":"2025-12-04T23:28:03","slug":"como-instalar-y-usar-docker-en-ubuntu","status":"publish","type":"post","link":"\/es\/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>Instalar Docker en Ubuntu te permite ejecutar contenedores para crear, probar y desplegar aplicaciones en un entorno limpio y consistente.<\/p><p>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>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>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>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=\"\/es\/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>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>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=\"\/es\/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\" width=\"1024\" height=\"569\" 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\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/terminal-install-dependencies-2048x1138-1.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/terminal-install-dependencies-2048x1138-1.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/terminal-install-dependencies-2048x1138-1.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/terminal-install-dependencies-2048x1138-1.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><h3 class=\"wp-block-heading\">2. A&ntilde;adir la clave GPG oficial de Docker<\/h3><p>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=\"\/es\/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\" width=\"1024\" height=\"292\" 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\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/terminal-curl-docker-2048x583-1.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/terminal-curl-docker-2048x583-1.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/terminal-curl-docker-2048x583-1.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/terminal-curl-docker-2048x583-1.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/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>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\" width=\"1024\" height=\"647\" 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\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/terminal-docker-ce-2048x1294-1.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/terminal-docker-ce-2048x1294-1.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/terminal-docker-ce-2048x1294-1.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/terminal-docker-ce-2048x1294-1.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/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>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\" width=\"1024\" height=\"120\" 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\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/terminal-docker-version.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/terminal-docker-version.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/terminal-docker-version.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/terminal-docker-version.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/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\" width=\"2048\" height=\"1107\" 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\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/terminal-systemctl-docker-active-running-highlighted-2048x1107-1.png\/w=2048,fit=scale-down 2048w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/terminal-systemctl-docker-active-running-highlighted-2048x1107-1.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/terminal-systemctl-docker-active-running-highlighted-2048x1107-1.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/terminal-systemctl-docker-active-running-highlighted-2048x1107-1.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/terminal-systemctl-docker-active-running-highlighted-2048x1107-1.png\/w=768,fit=scale-down 768w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/terminal-systemctl-docker-active-running-highlighted-2048x1107-1.png\/w=1536,fit=scale-down 1536w\" sizes=\"(max-width: 2048px) 100vw, 2048px\" \/><\/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>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\" width=\"1024\" height=\"90\" 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\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/terminal-docker-permission-denied-2048x180-1.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/terminal-docker-permission-denied-2048x180-1.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/terminal-docker-permission-denied-2048x180-1.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/terminal-docker-permission-denied-2048x180-1.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><p>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\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"818\" height=\"130\" 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\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/terminal-user-groups.png\/w=818,fit=scale-down 818w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/terminal-user-groups.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/terminal-user-groups.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/terminal-user-groups.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 818px) 100vw, 818px\" \/><\/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\" width=\"1024\" height=\"629\" 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\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/terminal-docker-run-2048x1257-1.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/terminal-docker-run-2048x1257-1.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/terminal-docker-run-2048x1257-1.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/terminal-docker-run-2048x1257-1.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><p>&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>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=\"\/es\/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>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\" width=\"1024\" height=\"301\" 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\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/cambiar-so-hpanel.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/cambiar-so-hpanel.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/cambiar-so-hpanel.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/cambiar-so-hpanel.png\/w=768,fit=scale-down 768w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/cambiar-so-hpanel.png\/w=1536,fit=scale-down 1536w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/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>&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=\"\/es\/servidor-vps\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2023\/02\/ES-VPS-hosting_in-text-banner.png\/public\" alt=\"\" class=\"wp-image-29287\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2023\/02\/ES-VPS-hosting_in-text-banner.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2023\/02\/ES-VPS-hosting_in-text-banner.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2023\/02\/ES-VPS-hosting_in-text-banner.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2023\/02\/ES-VPS-hosting_in-text-banner.png\/w=768,fit=scale-down 768w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/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>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>Empieza por dominar los <a href=\"\/es\/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>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=\"\/es\/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>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>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>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>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>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>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>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>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>Un mensaje de error como &laquo;No se puede conectar al daemon Docker&raquo; 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>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>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>Si ves &laquo;Se ha denegado el permiso al intentar conectarse al socket del daemon Docker&raquo;, 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>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>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>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>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>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>Alternativamente, los usuarios de Hostinger VPS pueden pedir al <strong>Asistente de IA Kodee <\/strong>que compruebe los registros de sus contenedores. Simplemente escribe: &laquo;&iquest;Puedes comprobar los registros del contenedor [nombre_del_contenedor]?&raquo; como en este ejemplo:<\/p><figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1024\" height=\"575\" 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\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/kodee-hostinger-scaled.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/kodee-hostinger-scaled.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/kodee-hostinger-scaled.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/kodee-hostinger-scaled.png\/w=768,fit=scale-down 768w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/32\/2019\/12\/kodee-hostinger-scaled.png\/w=1536,fit=scale-down 1536w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><h3 class=\"wp-block-heading\">5. Cortafuegos y problemas de red<\/h3><p>Docker utiliza varios puertos internamente. Si tienes un cortafuegos activado, como <a href=\"\/es\/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>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>\n\n\n\n<div class=\"protip\">\n                    <h4 class=\"title\">Gesti&oacute;n del cortafuegos con Kodee<\/h4>\n                    <p>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\n\n\n<\/p><h3 class=\"wp-block-heading\">6. Rendimiento lento de Docker<\/h3><p>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>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>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>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>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>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>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=\"\/es\/tutoriales\/como-instalar-y-usar-docker-en-ubuntu\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":138,"featured_media":49406,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"rank_math_title":"Instalar Docker en Ubuntu: 2 m\u00e9todos y configuraci\u00f3n esencial","rank_math_description":"Aprende a instalar Docker en Ubuntu con dos m\u00e9todos, configurar el sistema, usar comandos esenciales y resolver problemas habituales.","rank_math_focus_keyword":"instalar docker en ubuntu","footnotes":""},"categories":[5700],"tags":[11638,11637],"class_list":["post-9435","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-vps","tag-docker-ubuntu","tag-instalar-docker-ubuntu"],"hreflangs":[{"locale":"en-US","link":"https:\/\/www.hostinger.com\/tutorials\/how-to-install-docker-on-ubuntu","default":0},{"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":"ja-JP","link":"https:\/\/www.hostinger.com\/jp\/tutorials\/how-to-install-docker-on-ubuntu","default":0},{"locale":"ar-AE","link":"https:\/\/www.hostinger.com\/ae\/tutorials\/how-to-install-docker-on-ubuntu","default":0},{"locale":"en-UK","link":"https:\/\/www.hostinger.com\/uk\/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-PH","link":"https:\/\/www.hostinger.com\/ph\/tutorials\/how-to-install-docker-on-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":"es-AR","link":"https:\/\/www.hostinger.com\/ar\/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},{"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}],"acf":[],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/posts\/9435","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/users\/138"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/comments?post=9435"}],"version-history":[{"count":24,"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/posts\/9435\/revisions"}],"predecessor-version":[{"id":49438,"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/posts\/9435\/revisions\/49438"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/media\/49406"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/media?parent=9435"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/categories?post=9435"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-json\/wp\/v2\/tags?post=9435"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}