{"id":1947,"date":"2025-08-12T12:48:11","date_gmt":"2025-08-12T15:48:11","guid":{"rendered":"https:\/\/www.erudio.com.br\/blog\/?p=1947"},"modified":"2026-05-12T13:12:30","modified_gmt":"2026-05-12T16:12:30","slug":"se-voce-ja-usou-docker-voce-ja-sabe-usar-ollama-como-a-inteligencia-artificial-local-herdou-o-modelo-mental-que-o-mercado-ja-conhece","status":"publish","type":"post","link":"https:\/\/www.erudio.com.br\/blog\/se-voce-ja-usou-docker-voce-ja-sabe-usar-ollama-como-a-inteligencia-artificial-local-herdou-o-modelo-mental-que-o-mercado-ja-conhece\/","title":{"rendered":"Se voc\u00ea j\u00e1 usou Docker, voc\u00ea j\u00e1 sabe usar Ollama: como a Intelig\u00eancia Artificial local herdou o modelo mental que o mercado j\u00e1 conhece"},"content":{"rendered":"\n<!--\n  T\u00edtulo: Se voc\u00ea j\u00e1 usou Docker, voc\u00ea j\u00e1 sabe usar Ollama: como a Intelig\u00eancia Artificial local herdou o modelo mental que o mercado j\u00e1 conhece\n  UTM campaign: ollama-docker-mental-model\n  Tags sugeridas: ollama, docker, intelig\u00eancia artificial, llm, modelfile, dockerfile, ia local, open source\n  Instru\u00e7\u00f5es: colar na aba \"Texto\" do editor cl\u00e1ssico ou em bloco \"HTML Personalizado\" no Gutenberg\n-->\n\n<p style=\"margin-top: 20px;\">Se voc\u00ea trabalha com desenvolvimento de software nos \u00faltimos anos, Docker j\u00e1 virou parte do vocabul\u00e1rio cotidiano. Voc\u00ea sabe o que \u00e9 uma imagem, sabe fazer um <code>pull<\/code>, sabe montar um <code>Dockerfile<\/code> e subir um cont\u00eainer. Esse modelo mental est\u00e1 t\u00e3o consolidado que a gente nem pensa mais nele \u2014 s\u00f3 usa.<\/p>\n\n<p>O Ollama foi constru\u00eddo exatamente em cima desse modelo mental. N\u00e3o por acidente, mas por decis\u00e3o arquitetural deliberada. E entender essa decis\u00e3o ajuda a entender n\u00e3o s\u00f3 o Ollama em si, mas o que ele representa para o ecossistema de <strong>Intelig\u00eancia Artificial<\/strong> local.<\/p>\n\n<h2>O que \u00e9 o Ollama e quem o criou<\/h2>\n\n<p>O <strong>Ollama<\/strong> \u00e9 uma plataforma <em>open source<\/em> para rodar <strong>LLM<\/strong> \u2014 <em>Large Language Model<\/em>, grandes modelos de linguagem \u2014 diretamente na sua m\u00e1quina, sem depender de nenhuma API externa, sem mandar seus dados para a nuvem e sem precisar de uma infraestrutura cara. Voc\u00ea baixa, instala e roda. \u00c9 isso.<\/p>\n\n<p>A empresa foi fundada em 2023 por <strong>Jeffrey Morgan<\/strong> e <strong>Michael Chiang<\/strong>, em Palo Alto, na Calif\u00f3rnia. Os dois t\u00eam hist\u00f3rico em ferramentas para desenvolvedores e infraestrutura de software \u2014 e isso fica evidente nas escolhas de design do produto. O Ollama passou pelo programa de acelera\u00e7\u00e3o do <strong>Y Combinator<\/strong> e hoje suporta os principais modelos de Intelig\u00eancia Artificial dispon\u00edveis no mercado: Llama, Qwen, DeepSeek, Gemma e Mistral, entre outros.<\/p>\n\n<p>Vale deixar claro um ponto que gera confus\u00e3o frequente: Ollama n\u00e3o \u00e9 um produto da Meta. O nome soa parecido com <em>LLaMA<\/em> (o modelo da Meta), mas s\u00e3o coisas distintas. O Ollama \u00e9 uma plataforma independente que, entre outras coisas, suporta os modelos da fam\u00edlia LLaMA \u2014 assim como suporta modelos de outras origens.<\/p>\n\n<p>A miss\u00e3o declarada da empresa \u00e9 democratizar o acesso a LLMs, tornando a execu\u00e7\u00e3o local t\u00e3o simples quanto poss\u00edvel para desenvolvedores. E para isso, eles fizeram uma escolha bastante inteligente: em vez de inventar uma nova experi\u00eancia do zero, pegaram emprestado algo que o mercado j\u00e1 conhece bem.<\/p>\n\n<h2>Uma interface que voc\u00ea j\u00e1 conhece<\/h2>\n\n<p>A primeira coisa que chama aten\u00e7\u00e3o ao instalar o Ollama \u00e9 o quanto os comandos parecem familiares. Isso n\u00e3o \u00e9 impress\u00e3o \u2014 \u00e9 intencional.<\/p>\n\n<table  class=\" table table-hover\" >\n  <thead>\n    <tr>\n      <th>A\u00e7\u00e3o<\/th>\n      <th>Docker<\/th>\n      <th>Ollama<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <td>Executar<\/td>\n      <td><code>docker run ubuntu<\/code><\/td>\n      <td><code>ollama run qwen<\/code><\/td>\n    <\/tr>\n    <tr>\n      <td>Listar<\/td>\n      <td><code>docker ps<\/code> \/ <code>docker images<\/code><\/td>\n      <td><code>ollama list<\/code><\/td>\n    <\/tr>\n    <tr>\n      <td>Baixar<\/td>\n      <td><code>docker pull ubuntu<\/code><\/td>\n      <td><code>ollama pull qwen<\/code><\/td>\n    <\/tr>\n    <tr>\n      <td>Remover<\/td>\n      <td><code>docker rmi ubuntu<\/code><\/td>\n      <td><code>ollama rm qwen<\/code><\/td>\n    <\/tr>\n    <tr>\n      <td>Construir<\/td>\n      <td><code>docker build -t my-image .<\/code><\/td>\n      <td><code>ollama create my-model .<\/code><\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n\n<p>Quem j\u00e1 tem flu\u00eancia no <strong>Docker CLI<\/strong> consegue operar o <strong>Ollama CLI<\/strong> sem precisar estudar uma nova documenta\u00e7\u00e3o do zero. A curva de aprendizado praticamente desaparece para esse perfil de desenvolvedor.<\/p>\n\n<p>Mas isso vai al\u00e9m de conveni\u00eancia superficial. Existe uma l\u00f3gica conceitual por tr\u00e1s dessa escolha.<\/p>\n\n<p>O Docker se consolidou como o padr\u00e3o para gerenciar artefatos isolados e reproduz\u00edveis: voc\u00ea empacota um ambiente, distribui essa imagem e ela roda da mesma forma em qualquer m\u00e1quina. O Ollama aplica exatamente esse racioc\u00ednio ao mundo dos modelos de Intelig\u00eancia Artificial: voc\u00ea empacota um modelo com suas configura\u00e7\u00f5es, distribui e ele se comporta da mesma forma em qualquer ambiente onde o Ollama esteja instalado.<\/p>\n\n<p>O artefato muda \u2014 de cont\u00eainer para modelo \u2014 mas o paradigma de gerenciamento \u00e9 o mesmo. E foi essa percep\u00e7\u00e3o que guiou a arquitetura do Ollama desde o in\u00edcio.<\/p>\n\n<h2>Modelfiles: os Dockerfiles dos modelos de Intelig\u00eancia Artificial<\/h2>\n\n<p>Se a semelhan\u00e7a nos comandos j\u00e1 \u00e9 evidente, o paralelo fica ainda mais profundo quando olhamos para os arquivos de defini\u00e7\u00e3o.<\/p>\n\n<p>No Docker, o <strong>Dockerfile<\/strong> \u00e9 o contrato que descreve como uma imagem deve ser constru\u00edda: qual \u00e9 a base, quais depend\u00eancias instalar, quais arquivos copiar, qual comando executar na inicializa\u00e7\u00e3o.<\/p>\n\n<p>No Ollama, o <strong>Modelfile<\/strong> cumpre o mesmo papel para modelos de Intelig\u00eancia Artificial.<\/p>\n\n<p><strong>Dockerfile:<\/strong><\/p>\n<pre><code>FROM ubuntu:latest\nRUN apt-get update &amp;&amp; apt-get install -y python3\nCOPY app.py \/app.py\nCMD [\"python3\", \"\/app.py\"]<\/code><\/pre>\n\n<p><strong>Modelfile:<\/strong><\/p>\n<pre><code>FROM qwen\nPARAMETER temperature 0.7\nSYSTEM \"Voc\u00ea \u00e9 um assistente especializado em Java e Spring Boot\"<\/code><\/pre>\n\n<p>A estrutura \u00e9 an\u00e1loga: <code>FROM<\/code> define a base, os par\u00e2metros adicionais ajustam o comportamento e o <code>SYSTEM<\/code> equivale conceitualmente ao <code>CMD<\/code> \u2014 define o ponto de entrada do modelo no contexto da aplica\u00e7\u00e3o.<\/p>\n\n<p>Essa semelhan\u00e7a tem implica\u00e7\u00f5es pr\u00e1ticas importantes.<\/p>\n\n<p><strong>Versionamento e distribui\u00e7\u00e3o funcionam da mesma forma.<\/strong> Assim como um Dockerfile vive no reposit\u00f3rio e pode ser versionado junto com o c\u00f3digo, um Modelfile pode ser tratado como c\u00f3digo \u2014 <em>commitado<\/em>, revisado e evolu\u00eddo com a mesma disciplina que qualquer outro artefato do projeto.<\/p>\n\n<p><strong>O conceito de camadas se preserva.<\/strong> Imagens Docker s\u00e3o constru\u00eddas em camadas que podem ser reaproveitadas entre imagens diferentes. Modelos Ollama seguem o mesmo princ\u00edpio: quando voc\u00ea declara <code>FROM qwen<\/code>, est\u00e1 herdando as camadas do <em>foundation model<\/em> (modelo base) e adicionando apenas o que \u00e9 espec\u00edfico da sua customiza\u00e7\u00e3o. Isso torna o processo eficiente em armazenamento e em tempo de <em>build<\/em>.<\/p>\n\n<p><strong>Reprodutibilidade garantida.<\/strong> Um cont\u00eainer Docker roda da mesma forma em qualquer m\u00e1quina com Docker instalado. Um modelo definido via Modelfile se comporta de forma consistente em qualquer m\u00e1quina com Ollama instalado \u2014 mesmos par\u00e2metros, mesmo prompt de sistema, mesmo comportamento. Isso \u00e9 cr\u00edtico para equipes que precisam garantir consist\u00eancia entre ambientes de desenvolvimento, homologa\u00e7\u00e3o e produ\u00e7\u00e3o.<\/p>\n\n<h2>A l\u00f3gica por tr\u00e1s da arquitetura<\/h2>\n\n<p>Talvez a pergunta mais interessante n\u00e3o seja &#8220;o que o Ollama tem de parecido com o Docker&#8221;, mas sim &#8220;por que eles fizeram essa escolha&#8221;.<\/p>\n\n<p>A resposta tem algumas camadas.<\/p>\n\n<p>A primeira \u00e9 <strong>redu\u00e7\u00e3o de fric\u00e7\u00e3o na ado\u00e7\u00e3o<\/strong>. O maior obst\u00e1culo para qualquer nova ferramenta n\u00e3o \u00e9 a complexidade t\u00e9cnica em si \u2014 \u00e9 o custo cognitivo de aprender um novo paradigma. Ao adotar a interface do Docker, o Ollama eliminou esse obst\u00e1culo para uma parcela enorme do seu p\u00fablico-alvo: desenvolvedores backend que j\u00e1 trabalham com cont\u00eaineres no dia a dia.<\/p>\n\n<p>A segunda \u00e9 <strong>padroniza\u00e7\u00e3o de um problema ainda sem padr\u00e3o<\/strong>. Em 2023, quando o Ollama surgiu, n\u00e3o existia um jeito consensual de gerenciar modelos de Intelig\u00eancia Artificial localmente. Cada ferramenta tinha sua pr\u00f3pria interface, seus pr\u00f3prios comandos, sua pr\u00f3pria l\u00f3gica. O Ollama chegou com uma proposta clara: vamos usar o que j\u00e1 funciona.<\/p>\n\n<p>A terceira \u00e9 <strong>posicionamento para o futuro<\/strong>. O Docker Hub se tornou o reposit\u00f3rio central de imagens de cont\u00eaineres do mundo. O Ollama claramente est\u00e1 construindo a infraestrutura para que o mesmo aconte\u00e7a com modelos de Intelig\u00eancia Artificial \u2014 uma plataforma onde voc\u00ea faz <code>pull<\/code> de um modelo assim como faz <code>pull<\/code> de uma imagem, onde voc\u00ea publica suas customiza\u00e7\u00f5es e onde times inteiros compartilham <em>foundation models<\/em> ajustados para seus contextos espec\u00edficos.<\/p>\n\n<h2>Uma nota sobre capacidade<\/h2>\n\n<p>\u00c9 importante ser honesto sobre um ponto: os modelos de Intelig\u00eancia Artificial que rodam localmente via Ollama n\u00e3o t\u00eam a mesma capacidade dos grandes modelos comerciais dispon\u00edveis hoje \u2014 como o ChatGPT ou o Claude. Eles se comportam de forma pr\u00f3xima a vers\u00f5es desses modelos de alguns meses atr\u00e1s, com limita\u00e7\u00f5es especialmente em racioc\u00ednio complexo e tarefas que exigem muito contexto.<\/p>\n\n<p>Mas para a maioria dos casos de uso corporativo do dia a dia \u2014 gera\u00e7\u00e3o de c\u00f3digo, sumariza\u00e7\u00e3o de documentos, automa\u00e7\u00e3o de tarefas repetitivas, integra\u00e7\u00e3o com sistemas internos \u2014 eles entregam valor real. E entregam sem que nenhum dado sens\u00edvel da empresa saia da sua infraestrutura.<\/p>\n\n<p>Para muitos contextos, essa troca \u00e9 n\u00e3o s\u00f3 aceit\u00e1vel como desej\u00e1vel.<\/p>\n\n<h2>O que isso muda para voc\u00ea<\/h2>\n\n<p>Se Docker revolucionou a forma como empacotamos e distribu\u00edmos aplica\u00e7\u00f5es, o Ollama est\u00e1 tentando fazer o mesmo para modelos de Intelig\u00eancia Artificial. E o fato de ter sido constru\u00eddo sobre o mesmo modelo mental n\u00e3o \u00e9 detalhe \u2014 \u00e9 a estrat\u00e9gia.<\/p>\n\n<p>Para o desenvolvedor que j\u00e1 tem flu\u00eancia com cont\u00eaineres, a barreira de entrada para trabalhar com LLMs locais caiu de forma significativa. Voc\u00ea n\u00e3o precisa aprender uma nova filosofia de gerenciamento. Voc\u00ea j\u00e1 a conhece.<\/p>\n\n<p>O que muda \u00e9 o artefato que voc\u00ea est\u00e1 gerenciando. E com ele, as possibilidades que se abrem: rodar modelos de Intelig\u00eancia Artificial dentro da pr\u00f3pria infraestrutura da empresa, customizar comportamentos via Modelfile, versionar essas customiza\u00e7\u00f5es junto com o c\u00f3digo e garantir que o modelo em produ\u00e7\u00e3o se comporta exatamente como o modelo em desenvolvimento.<\/p>\n\n<p>Se voc\u00ea ainda n\u00e3o experimentou o Ollama, vale dedicar uma tarde. H\u00e1 outros posts sobre ele aqui no blog e v\u00e1rios v\u00eddeos no <a href=\"https:\/\/www.youtube.com\/@erudio\" target=\"_blank\" rel=\"noopener\">canal da Erudio no YouTube<\/a> \u2014 esse \u00e9 s\u00f3 um dos \u00e2ngulos pelos quais vale entender essa ferramenta.<\/p>\n\n<h2>Treinamentos relacionados com essa postagem<\/h2>\n\n<a href=\"https:\/\/pub.erudio.com.br\/formacao-spring-ai-2026-inteligencia-artificial-com-java-spring-boot-chatgpt-deepseek-claude-e-mcp?utm_source=blog-erudio&#038;utm_medium=organic&#038;utm_campaign=ollama-docker-mental-model&#038;utm_content=footer\" target=\"_blank\" rel=\"noopener\">\n  <img decoding=\"async\" style=\"max-width: 100%; display: block; margin-top: 8px; margin-bottom: 8px;\" title=\"Forma\u00e7\u00e3o Spring AI 2026: Intelig\u00eancia Artificial com Java, Spring Boot, ChatGPT, DeepSeek, Claude e MCP\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/refs\/heads\/main\/formacoes_blog\/31-spring-ai-java.png\">\n<\/a>\n\n<a href=\"https:\/\/pub.erudio.com.br\/inteligencia-artificial-com-dotnet-ai-e-dotnet-10-apps-inteligentes-com-chatgpt-openai-deepseek-e-ollama?utm_source=blog-erudio&#038;utm_medium=organic&#038;utm_campaign=ollama-docker-mental-model&#038;utm_content=footer\" target=\"_blank\" rel=\"noopener\">\n  <img decoding=\"async\" style=\"max-width: 100%; display: block; margin-bottom: 8px;\" title=\"Intelig\u00eancia Artificial com .NET AI e .NET 10: Aplica\u00e7\u00f5es Inteligentes com ChatGPT, OpenAI, DeepSeek e Ollama\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/refs\/heads\/main\/formacoes_blog\/33-dotnet-ai.png\">\n<\/a>\n\n<a href=\"https:\/\/pub.erudio.com.br\/formacao-spring-ai-2026-inteligencia-artificial-com-kotlin-spring-boot-chatgpt-deepseek-claude-e-mcp?utm_source=blog-erudio&#038;utm_medium=organic&#038;utm_campaign=ollama-docker-mental-model&#038;utm_content=footer\" target=\"_blank\" rel=\"noopener\">\n  <img decoding=\"async\" style=\"max-width: 100%; display: block; margin-bottom: 8px;\" title=\"Forma\u00e7\u00e3o Spring AI 2026: Intelig\u00eancia Artificial com Kotlin, Spring Boot, ChatGPT, DeepSeek, Claude e MCP\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/refs\/heads\/main\/formacoes_blog\/32-code-ai-kspring.png\">\n<\/a>\n\n<a href=\"https:\/\/pub.erudio.com.br\/formacao-spring-boot-2026-do-zero-ao-continuous-deployment-na-aws-e-gcp-com-java-docker-e-kubernetes?utm_source=blog-erudio&#038;utm_medium=organic&#038;utm_campaign=ollama-docker-mental-model&#038;utm_content=footer\" target=\"_blank\" rel=\"noopener\">\n  <img decoding=\"async\" style=\"max-width: 100%; display: block; margin-bottom: 8px;\" title=\"Forma\u00e7\u00e3o Spring Boot 2026: do Zero ao Deploy na AWS e GCP com Java, Docker e Kubernetes\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/refs\/heads\/main\/formacoes_blog\/07-rest-java.png\">\n<\/a>\n\n<a href=\"https:\/\/pub.erudio.com.br\/asp-net-2026-do-0-a-azure-e-gcp-com-asp-net-10-docker-e-kubernetes?utm_source=blog-erudio&#038;utm_medium=organic&#038;utm_campaign=ollama-docker-mental-model&#038;utm_content=footer\" target=\"_blank\" rel=\"noopener\">\n  <img decoding=\"async\" style=\"max-width: 100%; display: block; margin-bottom: 8px;\" title=\"Forma\u00e7\u00e3o ASP.NET 2026: do Zero ao Deploy na Azure e GCP com .NET 10, Docker e Kubernetes\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/refs\/heads\/main\/formacoes_blog\/01-rest-asp-net.png\">\n<\/a>\n\n<a href=\"https:\/\/pub.erudio.com.br\/formacao-microsservicos-2026-do-zero-ao-deploy-na-google-cloud-com-spring-boot-kubernetes-e-docker?utm_source=blog-erudio&#038;utm_medium=organic&#038;utm_campaign=ollama-docker-mental-model&#038;utm_content=footer\" target=\"_blank\" rel=\"noopener\">\n  <img decoding=\"async\" style=\"max-width: 100%; display: block; margin-bottom: 8px;\" title=\"Forma\u00e7\u00e3o Microsservi\u00e7os 2026: do Zero ao Deploy na Google Cloud com Spring Boot, Kubernetes e Docker\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/refs\/heads\/main\/formacoes_blog\/14-microservices-java.png\">\n<\/a>\n\n<a href=\"https:\/\/pub.erudio.com.br\/formacao-java-testing-2026-testes-automatizados-com-junit-mockito-spring-boot-tdd-e-testcontainers?utm_source=blog-erudio&#038;utm_medium=organic&#038;utm_campaign=ollama-docker-mental-model&#038;utm_content=footer\" target=\"_blank\" rel=\"noopener\">\n  <img decoding=\"async\" style=\"max-width: 100%; display: block; margin-bottom: 8px;\" title=\"Forma\u00e7\u00e3o Java Testing 2026: Testes Automatizados com JUnit, Mockito, Spring Boot, TDD e TestContainers\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/refs\/heads\/main\/formacoes_blog\/24-tests-java.png\">\n<\/a>\n\n<a href=\"https:\/\/pub.erudio.com.br\/docker-e-kubernetes-2026-do-zero-ao-deploy-profissional-na-aws-azure-e-gcp-com-github-actions?utm_source=blog-erudio&#038;utm_medium=organic&#038;utm_campaign=ollama-docker-mental-model&#038;utm_content=footer\" target=\"_blank\" rel=\"noopener\">\n  <img decoding=\"async\" style=\"max-width: 100%; display: block; margin-bottom: 8px;\" title=\"Forma\u00e7\u00e3o Docker e Kubernetes 2026: do Zero ao Deploy Profissional na AWS, Azure e GCP com GitHub Actions\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/refs\/heads\/main\/formacoes_blog\/10-docker-to-aws.png\">\n<\/a>\n\n<a href=\"https:\/\/pub.erudio.com.br\/meus-cursos?utm_source=blog-erudio&#038;utm_medium=organic&#038;utm_campaign=ollama-docker-mental-model&#038;utm_content=footer\" target=\"_blank\" rel=\"noopener\">\n  <img decoding=\"async\" style=\"max-width: 100%; display: block; margin-bottom: 8px;\" title=\"Forma\u00e7\u00e3o Docker e Kubernetes 2026: do Zero \u00e0 Intelig\u00eancia Artificial com MCP Catalog e Docker Model Runner\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/refs\/heads\/main\/formacoes_blog\/09-docker.png\">\n<\/a>\n\n<a href=\"https:\/\/pub.erudio.com.br\/formacao-continuous-deployment-java-kubernetes-gcp-github-actions?utm_source=blog-erudio&#038;utm_medium=organic&#038;utm_campaign=ollama-docker-mental-model&#038;utm_content=footer\" target=\"_blank\" rel=\"noopener\">\n  <img decoding=\"async\" style=\"max-width: 100%; display: block; margin-bottom: 8px;\" title=\"Forma\u00e7\u00e3o Continuous Deployment: do Zero ao Deploy com Java, Spring Boot, Docker, Kubernetes, Google Cloud (GCP) e GitHub Actions\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/refs\/heads\/main\/formacoes_blog\/29-cdpl-java-gcp.png\">\n<\/a>\n\n<a href=\"https:\/\/pub.erudio.com.br\/formacao-continuous-integration-delivery-java-aws-github-actions?utm_source=blog-erudio&#038;utm_medium=organic&#038;utm_campaign=ollama-docker-mental-model&#038;utm_content=footer\" target=\"_blank\" rel=\"noopener\">\n  <img decoding=\"async\" style=\"max-width: 100%; display: block; margin-bottom: 8px;\" title=\"Forma\u00e7\u00e3o Continuous Integration e Delivery: do Zero ao Deploy com Java, Spring Boot, Docker, Amazon AWS e GitHub Actions\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/refs\/heads\/main\/formacoes_blog\/27-cicd-java-aws.png\">\n<\/a>\n\n<a href=\"https:\/\/pub.erudio.com.br\/formacao-continuous-integration-delivery-java-azure-github-actions?utm_source=blog-erudio&#038;utm_medium=organic&#038;utm_campaign=ollama-docker-mental-model&#038;utm_content=footer\" target=\"_blank\" rel=\"noopener\">\n  <img decoding=\"async\" style=\"max-width: 100%; display: block; margin-bottom: 8px;\" title=\"Forma\u00e7\u00e3o Continuous Integration e Delivery: do Zero ao Deploy com Java, Spring Boot, Docker, Microsoft Azure e GitHub Actions\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/refs\/heads\/main\/formacoes_blog\/28-cicd-java-azure.png\">\n<\/a>\n\n<a href=\"https:\/\/pub.erudio.com.br\/meus-cursos?utm_source=blog-erudio&#038;utm_medium=organic&#038;utm_campaign=ollama-docker-mental-model&#038;utm_content=footer\" target=\"_blank\" rel=\"noopener\">\n  <img decoding=\"async\" style=\"max-width: 100%; display: block; margin-bottom: 8px;\" title=\"Forma\u00e7\u00e3o Microsservi\u00e7os 2026: do 0 ao Deploy na Google Cloud com ASP.NET, .NET 10, Kubernetes e Docker\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/refs\/heads\/main\/formacoes_blog\/15-microservices-asp-net.png\">\n<\/a>\n\n<a href=\"https:\/\/pub.erudio.com.br\/formacao-spring-boot-com-kotlin-rest-apis-profissionais-do-zero-ao-deploy-na-aws-com-docker-e-kubernetes?utm_source=blog-erudio&#038;utm_medium=organic&#038;utm_campaign=ollama-docker-mental-model&#038;utm_content=footer\" target=\"_blank\" rel=\"noopener\">\n  <img decoding=\"async\" style=\"max-width: 100%; display: block; margin-bottom: 8px;\" title=\"Forma\u00e7\u00e3o Spring Boot com Kotlin: REST APIs Profissionais do Zero ao Deploy na AWS com Docker e Kubernetes\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/refs\/heads\/main\/formacoes_blog\/18-rest-spring-kotlin.png\">\n<\/a>\n\n\n<a href=\"https:\/\/pub.erudio.com.br\/formacao-microsservicos-com-spring-cloud-spring-boot-kotlin-docker-e-zookeeper?utm_source=blog-erudio&#038;utm_medium=organic&#038;utm_campaign=ollama-docker-mental-model&#038;utm_content=footer\" target=\"_blank\" rel=\"noopener\">\n  <img decoding=\"async\" style=\"max-width: 100%; display: block; margin-bottom: 8px;\" title=\"Forma\u00e7\u00e3o Microsservi\u00e7os com Spring Cloud, Spring Boot, Kotlin, Docker e Zookeeper\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/refs\/heads\/main\/formacoes_blog\/22-ms-kotlin.png\">\n<\/a>\n\n<a href=\"https:\/\/pub.erudio.com.br\/kotlin-para-desenvolvedores-java-domine-sintaxe-lambdas-generics-reflections-programacao-funcional-e-spring-boot?utm_source=blog-erudio&#038;utm_medium=organic&#038;utm_campaign=ollama-docker-mental-model&#038;utm_content=footer\" target=\"_blank\" rel=\"noopener\">\n  <img decoding=\"async\" style=\"max-width: 100%; display: block; margin-bottom: 8px;\" title=\"Kotlin para DEV's Java: Domine Lambdas, Generics, Reflections, Programa\u00e7\u00e3o Funcional e Spring Boot\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/refs\/heads\/main\/formacoes_blog\/20-kotlin.png\">\n<\/a>\n\n<a href=\"https:\/\/pub.erudio.com.br\/crie-relatorios-profissionais-com-jasperreports-java-spring-boot-e-jaspersoft-studio?utm_source=blog-erudio&#038;utm_medium=organic&#038;utm_campaign=ollama-docker-mental-model&#038;utm_content=footer\" target=\"_blank\" rel=\"noopener\">\n  <img decoding=\"async\" style=\"max-width: 100%; display: block; margin-bottom: 8px;\" title=\"Crie Relat\u00f3rios Profissionais com JasperReports, Java, Spring Boot e JasperSoft Studio\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/refs\/heads\/main\/formacoes_blog\/30-jasper.png\">\n<\/a>\n\n<a href=\"https:\/\/pub.erudio.com.br\/carreira-em-ti-do-zero-ao-exterior-curriculo-entrevistas-negociacao-e-crescimento-profissional?utm_source=blog-erudio&#038;utm_medium=organic&#038;utm_campaign=ollama-docker-mental-model&#038;utm_content=footer\" target=\"_blank\" rel=\"noopener\">\n  <img decoding=\"async\" style=\"max-width: 100%; display: block; margin-bottom: 8px;\" title=\"Carreira em TI do Zero ao Exterior: Curr\u00edculo, Entrevistas, Negocia\u00e7\u00e3o e Crescimento Profissional\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/refs\/heads\/main\/formacoes_blog\/13-career.png\">\n<\/a>\n\n","protected":false},"excerpt":{"rendered":"<p>Se voc\u00ea trabalha com desenvolvimento de software nos \u00faltimos anos, Docker j\u00e1 virou parte do vocabul\u00e1rio cotidiano. Voc\u00ea sabe o que \u00e9 uma imagem, sabe fazer um pull, sabe montar um Dockerfile e subir um cont\u00eainer. Esse modelo mental est\u00e1 t\u00e3o consolidado que a gente nem pensa mais nele \u2014 s\u00f3 usa. O Ollama foi [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1950,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[387,410,422,404],"tags":[400,393,402,401],"_links":{"self":[{"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/posts\/1947"}],"collection":[{"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/comments?post=1947"}],"version-history":[{"count":2,"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/posts\/1947\/revisions"}],"predecessor-version":[{"id":1949,"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/posts\/1947\/revisions\/1949"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/media\/1950"}],"wp:attachment":[{"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/media?parent=1947"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/categories?post=1947"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.erudio.com.br\/blog\/wp-json\/wp\/v2\/tags?post=1947"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}