{"id":1750,"date":"2026-07-31T03:00:31","date_gmt":"2026-07-31T03:00:31","guid":{"rendered":"https:\/\/convly.ai\/?p=1750"},"modified":"2026-08-01T06:45:53","modified_gmt":"2026-08-01T06:45:53","slug":"ollama-docker","status":"publish","type":"post","link":"https:\/\/convly.ai\/es\/ollama-docker\/","title":{"rendered":"Gu\u00eda de Docker para Ollama (2026): Ejecuta Ollama en un contenedor con GPU"},"content":{"rendered":"<p>Ejecutando <strong>Ollama en Docker<\/strong> es la forma m\u00e1s limpia de mantener un servidor local de modelos reproducible: el mismo comando funciona en una laptop, un servidor dom\u00e9stico y un servidor con GPU alquilado, sin que nada se \u00abfiltre\u00bb al sistema anfitri\u00f3n. La configuraci\u00f3n es breve, pero dos detalles \u2014la transmisi\u00f3n de la GPU y la persistencia de vol\u00famenes\u2014 suelen causar la mayor parte del tiempo perdido.<\/p>\n<div style=\"background:#faf9ff;border:1px solid #e6e1f5;border-left:4px solid #6d28d9;border-radius:10px;padding:18px 22px;margin:28px 0;\">\n<p style=\"margin:0 0 10px;font-weight:700;color:#4c1d95;font-size:14px;letter-spacing:.5px;text-transform:uppercase;\">Quick answer<\/p>\n<p style=\"margin:0;\">Descarga y ejecuta la imagen oficial con un volumen con nombre para que los modelos sobrevivan a los reinicios: <code>docker run -d -v ollama:\/root\/.ollama -p 11434:11434 --name ollama ollama\/ollama<\/code>. Para una GPU NVIDIA, instala el \u00abNVIDIA Container Toolkit\u00bb en el sistema anfitri\u00f3n y a\u00f1ade <code>--gpus=all<\/code>. Luego descarga modelos dentro del contenedor con <code>docker exec -it ollama ollama pull llama3.1<\/code>. La API est\u00e1 disponible en el puerto 11434 exactamente igual que en una instalaci\u00f3n nativa.<\/p>\n<\/div>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-flat ez-toc-counter ez-toc-container-direction\">\n<label for=\"ez-toc-cssicon-toggle-item-6a705c3f7c76b\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Alternar<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #000000;color:#000000\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #000000;color:#000000\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewbox=\"0 0 24 24\" version=\"1.2\" baseprofile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-6a705c3f7c76b\"  aria-label=\"Alternar\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1' ><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/convly.ai\/es\/ollama-docker\/#The_three_commands_that_matter\" >Los tres comandos clave<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/convly.ai\/es\/ollama-docker\/#GPU_passthrough_the_part_that_fails\" >Transmisi\u00f3n de GPU: la parte que suele fallar<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/convly.ai\/es\/ollama-docker\/#Keep_your_models_between_restarts\" >Conserva tus modelos entre reinicios<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/convly.ai\/es\/ollama-docker\/#docker_compose_for_a_setup_you_keep\" >docker compose, para una configuraci\u00f3n que conserves<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/convly.ai\/es\/ollama-docker\/#Frequently_asked_questions\" >Preguntas frecuentes<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"The_three_commands_that_matter\"><\/span>Los tres comandos clave<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<div style=\"background:#faf9ff;border:1px solid #e6e1f5;border-radius:10px;padding:18px 22px;margin:28px 0;overflow-x:auto;\">\n<table style=\"width:100%;border-collapse:collapse;font-size:15px;\">\n<tr>\n<th style=\"text-align:left;padding:8px 10px;border-bottom:2px solid #e6e1f5;color:#4c1d95;\">Objetivo<\/th>\n<th style=\"text-align:left;padding:8px 10px;border-bottom:2px solid #e6e1f5;color:#4c1d95;\">Comando<\/th>\n<\/tr>\n<tr>\n<td style=\"padding:8px 10px;border-bottom:1px solid #efecf8;\">Solo CPU<\/td>\n<td style=\"padding:8px 10px;border-bottom:1px solid #efecf8;\"><code>docker run -d -v ollama:\/root\/.ollama -p 11434:11434 --name ollama ollama\/ollama<\/code><\/td>\n<\/tr>\n<tr>\n<td style=\"padding:8px 10px;border-bottom:1px solid #efecf8;\">Con GPU NVIDIA<\/td>\n<td style=\"padding:8px 10px;border-bottom:1px solid #efecf8;\"><code>docker run -d --gpus=all -v ollama:\/root\/.ollama -p 11434:11434 --name ollama ollama\/ollama<\/code><\/td>\n<\/tr>\n<tr>\n<td style=\"padding:8px 10px;border-bottom:1px solid #efecf8;\">Descargar un modelo<\/td>\n<td style=\"padding:8px 10px;border-bottom:1px solid #efecf8;\"><code>docker exec -it ollama ollama pull llama3.1<\/code><\/td>\n<\/tr>\n<\/table>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"GPU_passthrough_the_part_that_fails\"><\/span>Transmisi\u00f3n de GPU: la parte que suele fallar<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>De forma predeterminada, un contenedor no puede ver tu GPU. En Linux, debes instalar el <strong>NVIDIA Container Toolkit<\/strong> en el sistema anfitri\u00f3n, reiniciar Docker y a\u00f1adir <code>--gpus=all<\/code>. Verifica que funcione desde dentro del contenedor con <code>docker exec -it ollama nvidia-smi<\/code> \u2014 si ese comando falla, Ollama se ejecutar\u00e1, pero silenciosamente en la CPU, y concluir\u00e1s err\u00f3neamente que tu GPU es lenta cuando en realidad simplemente no se est\u00e1 utilizando. En Windows, el camino correcto es usar Docker Desktop con el backend WSL2 y controladores NVIDIA actualizados. Los usuarios de AMD necesitan la imagen etiquetada como ROCm en lugar de la imagen predeterminada, y las GPUs de Apple Silicon no pueden pasarse a Docker en absoluto; en una Mac, ejecuta Ollama de forma nativa.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Keep_your_models_between_restarts\"><\/span>Conserva tus modelos entre reinicios<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Los archivos de los modelos son grandes y lentos de volver a descargar, y un contenedor sin un volumen los descarta inmediatamente al eliminarse. La bandera <code>-v ollama:\/root\/.ollama<\/code> en todos los comandos anteriores crea un volumen con nombre que persiste entre reinicios, actualizaciones y cambios de imagen. Si prefieres almacenar los archivos en una ubicaci\u00f3n accesible, monta un directorio del sistema anfitri\u00f3n en lugar de usar un volumen: <code>-v \/srv\/ollama:\/root\/.ollama<\/code>.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"docker_compose_for_a_setup_you_keep\"><\/span>docker compose, para una configuraci\u00f3n que conserves<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Para cualquier implementaci\u00f3n permanente, un archivo docker-compose supera a un comando largo de ejecuci\u00f3n: registra la reserva de GPU, el volumen y el puerto en un solo lugar, reinicia autom\u00e1ticamente el servicio y te permite a\u00f1adir una interfaz web junto con \u00e9l m\u00e1s adelante. El contenedor expone el mismo punto final compatible con OpenAI en <code>http:\/\/localhost:11434<\/code>, por lo que las aplicaciones no pueden distinguir entre una instalaci\u00f3n contenerizada y una nativa.<\/p>\n<div style=\"background:#fffdf5;border:1px solid #f0e6c8;border-left:4px solid #b45309;border-radius:10px;padding:18px 22px;margin:28px 0;\">\n<p style=\"margin:0 0 10px;font-weight:700;color:#92400e;font-size:14px;letter-spacing:.5px;text-transform:uppercase;\">Convly&#8217;s take<\/p>\n<p style=\"margin:0;\">Conteneriza Ollama cuando la m\u00e1quina es un servidor, y omite Docker cuando la m\u00e1quina es tu laptop. En un servidor dom\u00e9stico o un servidor con GPU alquilado, la combinaci\u00f3n de volumen y docker-compose es realmente superior: reproducible, actualizable y f\u00e1cil de trasladar. En una computadora personal \u2014especialmente una Mac, donde la transmisi\u00f3n de GPU es imposible\u2014 Docker a\u00f1ade una capa que reduce el rendimiento y apenas aporta beneficios. El problema m\u00e1s com\u00fan que observamos es un contenedor ejecut\u00e1ndose silenciosamente en la CPU porque nunca se instal\u00f3 el toolkit; ejecuta \u00abnvidia-smi\u00bb dentro del contenedor antes de realizar cualquier prueba de rendimiento.<\/p>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"Frequently_asked_questions\"><\/span>Preguntas frecuentes<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3>\u00bfSoporta Ollama en Docker las GPUs?<\/h3>\n<p>S\u00ed, con NVIDIA mediante el \u00abNVIDIA Container Toolkit\u00bb y <code>--gpus=all<\/code>, y con AMD usando la imagen ROCm. Las GPUs de Apple Silicon no pueden exponerse a Docker: ejecuta Ollama de forma nativa en macOS.<\/p>\n<h3>\u00bfD\u00f3nde se almacenan los modelos en la configuraci\u00f3n con Docker?<\/h3>\n<p>Dentro del contenedor, en <code>\/root\/.ollama<\/code>. Asigna esa ruta a un volumen con nombre o a un directorio del sistema anfitri\u00f3n; de lo contrario, los modelos desaparecer\u00e1n al eliminar el contenedor.<\/p>\n<h3>\u00bfEs m\u00e1s lento Ollama en Docker?<\/h3>\n<p>De forma insignificante en Linux con una transmisi\u00f3n adecuada de la GPU. La lentitud percibida casi siempre significa que el contenedor se est\u00e1 ejecutando en la CPU porque la GPU no se transmiti\u00f3 correctamente.<\/p>\n<h3>\u00bfPuedo ejecutar varios modelos en un solo contenedor?<\/h3>\n<p>S\u00ed: descarga tantos como desees; Ollama los carga bajo demanda. El l\u00edmite es la memoria: solo los modelos cargados activamente consumen RAM o VRAM.<\/p>\n<p>\u00bfEres nuevo en esta herramienta? Comienza con la <a href='\/es\/how-to-install-ollama-2026\/'>Gu\u00eda de instalaci\u00f3n de Ollama<\/a>, y consulta los requisitos de hardware en <a href='\/es\/ollama-system-requirements-2026\/'>requisitos del sistema para Ollama<\/a>, o ajustar el tama\u00f1o de un modelo con el <a href='\/es\/llm-vram-calculator\/'>calculadora de VRAM<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>Running Ollama in Docker keeps models and dependencies contained and makes the setup portable between machines. Here is the working configuration \u2014 including GPU passthrough and persistent storage.<\/p>","protected":false},"author":1,"featured_media":1785,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[5],"tags":[1048,756,256,259,1047],"class_list":["post-1750","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai-tools","tag-docker","tag-gpu","tag-local-llm","tag-ollama","tag-self-hosting"],"_links":{"self":[{"href":"https:\/\/convly.ai\/es\/wp-json\/wp\/v2\/posts\/1750","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/convly.ai\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/convly.ai\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/convly.ai\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/convly.ai\/es\/wp-json\/wp\/v2\/comments?post=1750"}],"version-history":[{"count":2,"href":"https:\/\/convly.ai\/es\/wp-json\/wp\/v2\/posts\/1750\/revisions"}],"predecessor-version":[{"id":1860,"href":"https:\/\/convly.ai\/es\/wp-json\/wp\/v2\/posts\/1750\/revisions\/1860"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/convly.ai\/es\/wp-json\/wp\/v2\/media\/1785"}],"wp:attachment":[{"href":"https:\/\/convly.ai\/es\/wp-json\/wp\/v2\/media?parent=1750"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/convly.ai\/es\/wp-json\/wp\/v2\/categories?post=1750"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/convly.ai\/es\/wp-json\/wp\/v2\/tags?post=1750"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}