<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Heyglon Fábio</title>
    <description>The latest articles on DEV Community by Heyglon Fábio (@heyglonfabio).</description>
    <link>https://dev.to/heyglonfabio</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1262455%2F70704392-f96b-4cd4-934b-c9239a6dc440.jpeg</url>
      <title>DEV Community: Heyglon Fábio</title>
      <link>https://dev.to/heyglonfabio</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/heyglonfabio"/>
    <language>en</language>
    <item>
      <title>GUIA PRÁTICO DE COMANDOS DO DOCKER #5</title>
      <dc:creator>Heyglon Fábio</dc:creator>
      <pubDate>Fri, 01 Aug 2025 00:36:08 +0000</pubDate>
      <link>https://dev.to/heyglonfabio/guia-pratico-de-comandos-do-docker-5-431o</link>
      <guid>https://dev.to/heyglonfabio/guia-pratico-de-comandos-do-docker-5-431o</guid>
      <description>&lt;h2&gt;
  
  
  Neste artigo, iremos falar um pouco sobre Commit, Export e Import
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7o3ro9covgtyax01xm47.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7o3ro9covgtyax01xm47.png" alt=" " width="800" height="315"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Comando &lt;code&gt;commit&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;O comando &lt;code&gt;commit&lt;/code&gt; é utilizado para criar uma nova imagem baseada no estado atual de um container. Isso é útil quando você deseja preservar modificações feitas manualmente dentro de um container.&lt;br&gt;
&lt;strong&gt;Exemplo Prático&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;1.1.&lt;/strong&gt; Crie um container Alpine com shell habilitado:&lt;br&gt;
&lt;code&gt;docker container run -dt --name alpine-commit alpine:latest&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;1.2.&lt;/strong&gt; Acesse o container:&lt;br&gt;
&lt;code&gt;docker container exec -it alpine-commit sh&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;1.3.&lt;/strong&gt; Crie um arquivo dentro do container:&lt;br&gt;
&lt;code&gt;echo "Arquivo criado dentro do container" &amp;gt; container-file&lt;/code&gt;&lt;br&gt;
Verifique o conteúdo:&lt;br&gt;
&lt;code&gt;cat container-file&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;1.4.&lt;/strong&gt; Abra um novo terminal no host e gere a imagem baseada no container:&lt;br&gt;
&lt;code&gt;docker container commit alpine-commit alpine:custom&lt;/code&gt;&lt;br&gt;
Neste caso:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;alpine&lt;/code&gt;: nome da imagem&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;custom&lt;/code&gt;: tag personalizada&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;1.5.&lt;/strong&gt; Confirme a criação da imagem&lt;br&gt;
&lt;code&gt;docker image ls&lt;/code&gt;&lt;br&gt;
Você verá a nova imagem &lt;code&gt;alpine:custom&lt;/code&gt; listada&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  2. Comando &lt;code&gt;export&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;O comando &lt;code&gt;export&lt;/code&gt; salva o &lt;strong&gt;sistema de arquivos de um container&lt;/strong&gt; em um arquivo compactado &lt;code&gt;.tar&lt;/code&gt;.&lt;br&gt;
Diferente do commit, ele não cria uma imagem diretamente, apenas gera um snapshot do container.&lt;br&gt;
&lt;strong&gt;Exemplo Prático&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;2.1.&lt;/strong&gt; Crie um container Alpine:&lt;br&gt;
&lt;code&gt;docker container run -dt --name alpine-export alpine:latest&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;2.2.&lt;/strong&gt; Acesse o container:&lt;br&gt;
&lt;code&gt;docker container exec -it alpine-export sh&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;2.3.&lt;/strong&gt; Instale o pacote &lt;code&gt;curl&lt;/code&gt; dentro do container (simulando uma modificação):&lt;br&gt;
&lt;code&gt;apk add curl&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;2.4.&lt;/strong&gt; Abre um novo terminal no host e exporte o container:&lt;br&gt;
&lt;code&gt;docker container export alpine-export -o alpine-export.tar&lt;/code&gt;&lt;br&gt;
A flag &lt;code&gt;-o&lt;/code&gt; define o nome do arquivo de saída (output).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Agora você terá um arquivo chamado &lt;code&gt;alpine-export.tar&lt;/code&gt; contendo o sistema de arquivos do container.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Comando &lt;code&gt;import&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;O comando &lt;code&gt;import&lt;/code&gt; transforma um arquivo &lt;code&gt;.tar&lt;/code&gt; (gerado pelo &lt;code&gt;export&lt;/code&gt; ou outros métodos) em uma nova imagem Docker.&lt;br&gt;
&lt;strong&gt;Exemplo Prático&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;3.1.&lt;/strong&gt; Importe o arquivo exportado anteriormente:&lt;br&gt;
&lt;code&gt;docker imagem import alpine-export.tar alpine:export&lt;/code&gt;&lt;br&gt;
Neste caso, &lt;code&gt;alpine&lt;/code&gt; é o nome da imagem e &lt;code&gt;export&lt;/code&gt; é a tag da imagem.&lt;br&gt;
&lt;strong&gt;3.2.&lt;/strong&gt; Crie um container usando essa nova imagem:&lt;br&gt;
&lt;code&gt;docker container run -it --name alpine-import --entrypoint /bin/sh alpine:export&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;3.3.&lt;/strong&gt; Verifique se as alterações ainda estão presentes (ex.: &lt;code&gt;curl&lt;/code&gt;):&lt;br&gt;
&lt;code&gt;curl --version&lt;/code&gt;&lt;br&gt;
Se o pacote estiver instalado, isso confirma que o estado do container foi preservado.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Resumo das Diferenças
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;commit&lt;/code&gt; : Cria &lt;strong&gt;uma nova imagem&lt;/strong&gt; a partir de um container.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;export&lt;/code&gt; : Gera um &lt;strong&gt;arquivo.tar&lt;/strong&gt; com o sistema de arquivos do container.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;import&lt;/code&gt; : Cria uma &lt;strong&gt;imagem&lt;/strong&gt; a partir de um arquivo &lt;code&gt;.tar&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>docker</category>
      <category>kubernetes</category>
      <category>devops</category>
    </item>
    <item>
      <title>GUIA PRÁTICO DE COMANDOS DO DOCKER #4</title>
      <dc:creator>Heyglon Fábio</dc:creator>
      <pubDate>Thu, 31 Jul 2025 00:46:35 +0000</pubDate>
      <link>https://dev.to/heyglonfabio/guia-pratico-de-comandos-do-docker-4-d00</link>
      <guid>https://dev.to/heyglonfabio/guia-pratico-de-comandos-do-docker-4-d00</guid>
      <description>&lt;h2&gt;
  
  
  Neste artigo, iremos usar falar um pouco de: exec, cp, variáveis de ambiente e health check.
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5dl1tbexj961qddbxt41.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5dl1tbexj961qddbxt41.png" alt=" " width="800" height="315"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Comando &lt;code&gt;exec&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;O comando &lt;code&gt;exec&lt;/code&gt; permite executar comandos dentro de um container em execução.&lt;br&gt;
Para acessar o container em modo interativo:&lt;br&gt;
&lt;code&gt;docker container exec -it meu-nginx bash&lt;/code&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note que:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;-it&lt;/code&gt;: habilita modo interativo&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;bash&lt;/code&gt;: acessa o shell Bash como usuário root (se disponível)&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;Se você deseja apenas executar um comando sem entrar no shell, por exemplo listar os arquivos:&lt;br&gt;
&lt;code&gt;docker container exec meu-nginx ls&lt;/code&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Isso retornará as pastas do diretório atual dentro do container.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Também é possível criar arquivos dentro do container:&lt;br&gt;
&lt;code&gt;docker container exec meu-nginx touch arquivo.txt&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Comando &lt;code&gt;cp&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;O comando &lt;code&gt;cp&lt;/code&gt; permite copiar arquivos &lt;strong&gt;do container para o host&lt;/strong&gt; e &lt;strong&gt;do host para o container&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Copiar do Container para o Host&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; Acesse o container: &lt;code&gt;docker container exec -it meu-nginx bash&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; Dentro do container, crie um arquivo: &lt;code&gt;echo "Arquivo criado no container" &amp;gt; container-file&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;3.&lt;/strong&gt; Descubra o caminho do arquivo: &lt;code&gt;pwd&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;4.&lt;/strong&gt; No hosto copie o arquivo do container: &lt;code&gt;docker container cp meu-nginx:/container-file .&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note que a &lt;code&gt;/&lt;/code&gt; significa que o arquivo foi criado na pasta root do container e o &lt;code&gt;.&lt;/code&gt; significa que o arquivo será copiado para o diretório atual do host&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Copiar do Host para o Container&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; No host, crie um arquivo: &lt;code&gt;echo "Arquivo criadno no host" &amp;gt; host-file&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; Copie para dentro do container: &lt;code&gt;docker container cp host-file meu-nginx:/host-file&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;3.&lt;/strong&gt; No container, verifique o conteúdo: &lt;code&gt;cat /host-file&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Obs.: para visualizar o conteúdo dos arquivos, utilize &lt;code&gt;cat &amp;lt;nome-do-arquivo&amp;gt;&lt;/code&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  3. Variáveis de Ambiente, Hostname e Modo Read-Only
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;3.1 Variáveis de Ambiente&lt;/strong&gt;&lt;br&gt;
Podemos passar variáveis de ambiente criação do container:&lt;br&gt;
&lt;code&gt;docker container run -it --name alpine-environment -e VAR1=abc123 -e VAR2=def456 alpine:latest&lt;/code&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Dentro do container use o comando &lt;code&gt;env&lt;/code&gt; para verificar as variáveis criadas.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;3.2 Modo Read-Only&lt;/strong&gt;&lt;br&gt;
O modo somente leitura impede qualquer alteração no sistema de arquivos:&lt;br&gt;
&lt;code&gt;docker container run -it alpine-read-only --read-only alpine:latest&lt;/code&gt;&lt;br&gt;
Agora tente criar um arquivo dentro do container:&lt;br&gt;
&lt;code&gt;touch teste.txt&lt;/code&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note que será exibida uma mensagem de erro, indicando que o sistema de arquivos é apenas leitura.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;3.3 Alterar o Hostname&lt;/strong&gt;&lt;br&gt;
Podemos definir um hostname personalizado para um container:&lt;br&gt;
&lt;code&gt;docker container run -it --name ubuntu-hostname --hostname meu-ubuntu ubuntu:24.04&lt;/code&gt;&lt;br&gt;
Dentro do container, execute:&lt;br&gt;
&lt;code&gt;hostname&lt;/code&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;O retorno será &lt;code&gt;meu-ubuntu&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  4. Health Check
&lt;/h2&gt;

&lt;p&gt;O &lt;strong&gt;Health Check&lt;/strong&gt; é usado para verificar automaticamente o estado de saúde de um container.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4.1 Usando &lt;code&gt;--health-cmd&lt;/code&gt;&lt;/strong&gt;&lt;br&gt;
Crie um container com verificação de saúde:&lt;br&gt;
&lt;code&gt;docker container run -d --name nginx-healtcheck --rm --health-cmd="cat /usr/share/nginx/html/index.html" nginx:latest&lt;/code&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Se o arquivo &lt;code&gt;index.html&lt;/code&gt; existir, o container será considerado &lt;strong&gt;healthy&lt;/strong&gt;; caso contrário, &lt;strong&gt;unhealthy&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;4.2 Ajustando Intervalos e Tentativas&lt;/strong&gt;&lt;br&gt;
Podemos configurar a frequência e o número de tentativas de checks no container:&lt;br&gt;
&lt;code&gt;docker container run -d --name nginx-healthcheck --rm --health-cmd="caat /usr/share/nginx/html/index.html" --health-interval=30s --health-retries=3 --health-timeout=10s nginx:latest&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Tempo entre verificações: &lt;code&gt;--health-interval=30s&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Número de tentativas antes de marcar como falha: &lt;code&gt;--health-retries=3&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tempo limite para cada verificação: &lt;code&gt;--health-timeout=10s&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Verifique o estado: &lt;code&gt;docker container ls&lt;/code&gt;&lt;br&gt;
A coluna STATUS mostrará &lt;strong&gt;healthy&lt;/strong&gt; ou &lt;strong&gt;unhealthy&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>docker</category>
      <category>kubernetes</category>
      <category>devops</category>
    </item>
    <item>
      <title>GUIA PRÁTICO DE COMANDOS DO DOCKER #3</title>
      <dc:creator>Heyglon Fábio</dc:creator>
      <pubDate>Wed, 30 Jul 2025 00:29:19 +0000</pubDate>
      <link>https://dev.to/heyglonfabio/guia-pratico-de-comandos-do-docker-3-5aed</link>
      <guid>https://dev.to/heyglonfabio/guia-pratico-de-comandos-do-docker-3-5aed</guid>
      <description>&lt;h2&gt;
  
  
  Neste artigo, estaremos trabalhando um pouco com PORT, LOGS e DIFF em containers.
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn5wrwieibpsrg506xlyq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn5wrwieibpsrg506xlyq.png" alt=" " width="800" height="315"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  1. Associando Portas do Host à Porta do Container
&lt;/h3&gt;

&lt;p&gt;Para este exemplo, estaremos criando um container chamado meu-nginx:&lt;br&gt;
&lt;code&gt;docker container run --name meu-nginx -p 8080:80 nginx:latest&lt;/code&gt;&lt;br&gt;
Após executar o comando, abra seu navegador de preferência e acesse:&lt;br&gt;
&lt;code&gt;http://127.0.0.1:8080&lt;/code&gt;&lt;br&gt;
Se aparecer a página de boas-vindas do NGINX, significa que a configuração foi realizada com sucesso.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Explicação da flag &lt;code&gt;-p&lt;/code&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;O formato é &lt;code&gt;-p &amp;lt;porta-do-host&amp;gt;:&amp;lt;porta-do-container&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;No exemplo acima, a porta 8080 do host está associada à porta 80 do container&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  2. Comando Inspect
&lt;/h3&gt;

&lt;p&gt;Para visualizar informações detalhadas do seu container:&lt;br&gt;
&lt;code&gt;docker container inspect meu-nginx&lt;/code&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;O retorno será um arquivo JSON contendo diversas informações, como:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Configurações de rede&lt;/li&gt;
&lt;li&gt;Volumes montados&lt;/li&gt;
&lt;li&gt;Variáveis de ambiente&lt;/li&gt;
&lt;li&gt;Status do container&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  3. Comando Port
&lt;/h3&gt;

&lt;p&gt;Para listar quais postas do host estão associadas às portas do container:&lt;br&gt;
&lt;code&gt;docker container port meu-nginx&lt;/code&gt;&lt;br&gt;
O retorno mostrará a relação entre portas internas do container e portas do host.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Comando Diff
&lt;/h3&gt;

&lt;p&gt;O comando &lt;code&gt;diff&lt;/code&gt; mostra alterações realizadas no sistema de arquivos de um container. Para isso, iremos realizar alguns passos para chegar ao resultado esperado.&lt;br&gt;
&lt;strong&gt;Passo a passo&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;ol&gt;
&lt;li&gt;Abra &lt;strong&gt;dois terminais&lt;/strong&gt; no mesmo diretório&lt;/li&gt;
&lt;li&gt;Baixe a imagem Alpine (caso não tenha ainda): &lt;code&gt;docker image pull alpine:latest&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;No primeiro terminal, crie um container interativo: &lt;code&gt;docker container run -it --name alpine-diff alpine:latest&lt;/code&gt;. Agora você estará dentro do container (note a mudança no prompt)&lt;/li&gt;
&lt;li&gt;No segundo terminal, execute: &lt;code&gt;docker container diff alpine-diff&lt;/code&gt;. E como nenhuma modificação foi feinda ainda, não haverá retorno.&lt;/li&gt;
&lt;li&gt;No primeiro terminal, crie uma arquivo de teste: &lt;code&gt;touch texte.txt&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;No segundo terminal, rode novamente o comando diff: &lt;code&gt;docker container diff alpine-diff&lt;/code&gt;. Agora será mostrado que houve modificação no sistema de arquivos do container.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Significado dos símbolos do diff:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A: Arquivo adicionado&lt;/li&gt;
&lt;li&gt;C: Arquivo alterado (changed)&lt;/li&gt;
&lt;li&gt;D: Arquivo removido (deleted)&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  5. Comando Logs
&lt;/h3&gt;

&lt;p&gt;Para visualizar os logs de um container, primeiro criaremos o seguinte container:&lt;br&gt;
&lt;code&gt;docker container run -d --name nginx-logs -p 8000:80 nginx:latest&lt;/code&gt;&lt;br&gt;
O container será executado em segundo plano devido ao uso da flag &lt;code&gt;-d&lt;/code&gt;.&lt;br&gt;
Agora, visualize os logs:&lt;br&gt;
&lt;code&gt;docker container logs nginx-logs&lt;/code&gt;&lt;br&gt;
Porém, para visualizar demais logs, tomaremos como exemplo os logs de acessos:&lt;/p&gt;

&lt;blockquote&gt;
&lt;ol&gt;
&lt;li&gt;Abra seu navegador e acesse: &lt;code&gt;http://127.0.0.1:8000&lt;/code&gt;. A página de boas-vindas do NGINX será exibida.&lt;/li&gt;
&lt;li&gt;Volte ao terminal e execute novamente: &lt;code&gt;docker container logs nginx-logs&lt;/code&gt;. Agora vocẽ verá registros de acesso (HTTP, GET) gerados pelo navegador.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Dica:&lt;/strong&gt; Para acompanhar logs em tempo real, utilize a flag &lt;code&gt;-f&lt;/code&gt; de modo que o comando fique:&lt;br&gt;
&lt;code&gt;docker container logs -f nginx-logs&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
    </item>
    <item>
      <title>GUIA PRÁTICO DE COMANDOS DO DOCKER #2</title>
      <dc:creator>Heyglon Fábio</dc:creator>
      <pubDate>Fri, 25 Jul 2025 00:42:12 +0000</pubDate>
      <link>https://dev.to/heyglonfabio/guia-pratico-de-comandos-do-docker-2-1g58</link>
      <guid>https://dev.to/heyglonfabio/guia-pratico-de-comandos-do-docker-2-1g58</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4ruhcjp9am1nadsv5tvd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4ruhcjp9am1nadsv5tvd.png" alt=" " width="800" height="315"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Trabalhando com Containers no Docker
&lt;/h1&gt;

&lt;p&gt;Para este artigo, iremos criar um novo container chamado meu-nginx para servir de exemplo e pegando a imagem atual do nginx como referência.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Criando um Container
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;docker container create --name meu-nginx nginx:latest&lt;/code&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note que o container foi criado mas não iniciado.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  2. Modificando o Entrypoint
&lt;/h3&gt;

&lt;p&gt;Para alterar o &lt;em&gt;entrypoint&lt;/em&gt; da imagem (ponto de entrada do container), utilize:&lt;br&gt;
&lt;code&gt;docker container run --entrypoint /bin/bash nginx:latest&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Executando um Container em Segundo Plano
&lt;/h3&gt;

&lt;p&gt;Para utilizar um container, sem a necessidade do terminal ficar travado, utilize:&lt;br&gt;
&lt;code&gt;docker container run -d meu-nginx&lt;/code&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A flag &lt;code&gt;-d&lt;/code&gt; significa detached mode&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  4. Autoremover um Container
&lt;/h3&gt;

&lt;p&gt;Para que um container seja automaticamente removido após a sua execução (útil para testes rápidos), utilize:&lt;br&gt;
&lt;code&gt;docker container run --rm meu-nginx&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Nomeando um Container
&lt;/h3&gt;

&lt;p&gt;Você pode dar um nome ao container para facilidar seu gerenciamento:&lt;br&gt;
&lt;code&gt;docker container run --name &amp;lt;nome-do-container&amp;gt; nginx:latest&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Iniciando um Container
&lt;/h3&gt;

&lt;p&gt;Existem três formas de iniciar um container criado:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Pelo nome:&lt;br&gt;
&lt;code&gt;docker container start meu-nginx&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Pelo ID abreviado (12 caracteres):&lt;br&gt;
&lt;code&gt;docker container start &amp;lt;ID_12&amp;gt;&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Pelo ID completo:&lt;br&gt;
&lt;code&gt;docker container start &amp;lt;ID_COMPLETO&amp;gt;&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;Para descobrir o ID do container, utilize &lt;code&gt;docker container ls -a&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  7. Parando um Container
&lt;/h3&gt;

&lt;p&gt;Para parar um container em execução:&lt;br&gt;
&lt;code&gt;docker container stop meu-nginx&lt;/code&gt;&lt;br&gt;
Outra opção é o comando kill, que força o encerramento imediado:&lt;br&gt;
&lt;code&gt;docker container kill meu-nginx&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Diferenças entre Stop e Kill:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;stop:&lt;/code&gt; envia um sinal de término (sigterm), permitindo que o processo finalize de forma &lt;code&gt;graciosa&lt;/code&gt; (código de saída &lt;code&gt;0&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;kill:&lt;/code&gt; engia um sinal de interrupção imediada (sigkill), encerrando o processo &lt;code&gt;forçadamente&lt;/code&gt; (código de saída &lt;code&gt;173&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  8. Pausar um Container
&lt;/h3&gt;

&lt;p&gt;Para pausar a execução de todos os processos do container:&lt;br&gt;
&lt;code&gt;docker container pause meu-nginx&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  9. Retomar um Container Pausado
&lt;/h3&gt;

&lt;p&gt;Para retomar a execução do mesmo container:&lt;br&gt;
&lt;code&gt;docker container unpause meu-nginx&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  10. Remover um Container
&lt;/h3&gt;

&lt;p&gt;Para remover um container que não é mais necessário:&lt;br&gt;
&lt;code&gt;docker container rm meu-nginx&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  11. Reiniciando um Container
&lt;/h3&gt;

&lt;p&gt;Neste exemplo, sugiro que tenha dois terminais abertos no mesmo diretório. No primeiro terminal você pode iniciar um novo container apenas para teste:&lt;br&gt;
&lt;code&gt;docker container run --name nginx-teste nginx:latest&lt;/code&gt;&lt;br&gt;
Já no segundo terminal, podemos reiniciar o container de teste:&lt;br&gt;
&lt;code&gt;docker container restart nginx-teste&lt;/code&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note que após o comando de restart no segundo terminal, o container foi parado e iniciado automaticamente no primeiro terminal.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  12. Renomeando um Container
&lt;/h3&gt;

&lt;p&gt;Para alterar o nome de um container existente:&lt;br&gt;
&lt;code&gt;docker container renamde &amp;lt;nome-atual&amp;gt; &amp;lt;novo-nome&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  13. Comando Wait
&lt;/h3&gt;

&lt;p&gt;Para obter o código de saída de um container após ele ser finalizado:&lt;br&gt;
&lt;code&gt;docker container wait meu-nginx&lt;/code&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Se o container foi finalizado com sucesso, o código de saída será &lt;code&gt;0&lt;/code&gt;. Outros códigos indicam diferentes tipos de falhas.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>docker</category>
      <category>containers</category>
      <category>kubernetes</category>
      <category>devops</category>
    </item>
    <item>
      <title>GUIA PRÁTICO DE COMANDOS DO DOCKER #1</title>
      <dc:creator>Heyglon Fábio</dc:creator>
      <pubDate>Thu, 24 Jul 2025 00:14:09 +0000</pubDate>
      <link>https://dev.to/heyglonfabio/guia-pratico-de-comandos-do-docker-1-42fj</link>
      <guid>https://dev.to/heyglonfabio/guia-pratico-de-comandos-do-docker-1-42fj</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fibc4qo77vgpur7fmowr9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fibc4qo77vgpur7fmowr9.png" alt=" " width="800" height="315"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Comandos Básicos de Imagens
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1.1 Visualizar Ajuda
&lt;/h3&gt;

&lt;p&gt;Para visualizar os comandos básicos do Docker, utilize:&lt;br&gt;
&lt;code&gt;docker image -- help&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  1.2 Baixar Imagem
&lt;/h3&gt;

&lt;p&gt;Para baixar uma imagem, utilizamos os repositórios oficiais das imagens no &lt;a href="https://hub.docker.com" rel="noopener noreferrer"&gt;Docker Hub&lt;/a&gt; e utilizamos a seguinte linha de comando:&lt;br&gt;
&lt;code&gt;docker image pull &amp;lt;nome-do-repo&amp;gt;:&amp;lt;tag&amp;gt;&lt;/code&gt;&lt;br&gt;
Exemplo:&lt;br&gt;
&lt;code&gt;docker image pull nginx:latest&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  1.3 Listar Imagens
&lt;/h3&gt;

&lt;p&gt;Para listar as imagens baixadas, rode o seguinte comando:&lt;br&gt;
&lt;code&gt;docker image ls&lt;/code&gt;&lt;br&gt;
Podemos também listar apenas os ID's das imagens:&lt;br&gt;
&lt;code&gt;docker image ls -q&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  1.4 Inspecionar Imagens
&lt;/h3&gt;

&lt;p&gt;Para visualizar informações detalhadas de uma imagem:&lt;br&gt;
&lt;code&gt;docker image inspect &amp;lt;repositorio&amp;gt;:&amp;lt;tag&amp;gt;&lt;/code&gt;&lt;br&gt;
Podemos pegar como exemplo o NGINX em sua última versão:&lt;br&gt;
&lt;code&gt;docker image inspect nginx:latest&lt;/code&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note que esta linha de comando irá retornar um JSON contendo dados da imagem como camadas, arquitetura, variáveis de ambiente, volumes, entre outros.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  1.5 Salvar Imagem (compactar)
&lt;/h3&gt;

&lt;p&gt;Para exportar uma imagem para um arquivo compactado:&lt;br&gt;
&lt;code&gt;docker image save nginx -o nginx.tar&lt;/code&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note que a flag &lt;code&gt;-o&lt;/code&gt; significa output (saída).&lt;br&gt;
O arquivo nginx.tar poderá ser transferido para outro host ou armazenado como backup.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  1.6 Carregar Imagem (descompactar)
&lt;/h3&gt;

&lt;p&gt;Se você tiver uma imagem exportada (por exemplo, nginx.tar), pode carregá-la novamente:&lt;br&gt;
&lt;code&gt;docker image load -i nginx.tar&lt;/code&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A flag &lt;code&gt;-i&lt;/code&gt; significa input (entrada).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  1.7 Remover Imagem
&lt;/h3&gt;

&lt;p&gt;Para remover uma imagem que não está mais em uso:&lt;br&gt;
&lt;code&gt;docker image rm &amp;lt;id&amp;gt;&lt;/code&gt;&lt;br&gt;
Além do ID, é possível usar o nome do repositório:&lt;br&gt;
&lt;code&gt;docker image rm nginx&lt;/code&gt;&lt;br&gt;
Se houver múltiplas imagens com a mesma referência, utilize a flag de forçar para remover:&lt;br&gt;
&lt;code&gt;docker image rm --force nginx&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Comandos Básicos de Containers
&lt;/h2&gt;

&lt;h3&gt;
  
  
  2.1 Executar um Container
&lt;/h3&gt;

&lt;p&gt;Para rodar o NGINX na porta 8080 local apontando para a 80 do container:&lt;br&gt;
&lt;code&gt;docker container run --name meu_nginx -d -p 8080:80 nginx:latest&lt;/code&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;--name&lt;/code&gt;: nome amigável para o container&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;-d&lt;/code&gt;: modo &lt;strong&gt;detached&lt;/strong&gt; (em background)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;-p&lt;/code&gt;: mapeamento de portas (host:container)&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  2.2 Listar Containers
&lt;/h3&gt;

&lt;p&gt;Para listar apenas os containers em execução:&lt;br&gt;
&lt;code&gt;docker container ls&lt;/code&gt;&lt;br&gt;
Para listar todos os containers (inclusive parados):&lt;br&gt;
&lt;code&gt;docker container ls -a&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2.3 Acessar Terminal de um Container
&lt;/h3&gt;

&lt;p&gt;Para rodar linhas de comando em um container:&lt;br&gt;
&lt;code&gt;docker exec -it meu_nginx /bin/bash&lt;/code&gt;&lt;br&gt;
ou caso use Alpine:&lt;br&gt;
&lt;code&gt;docker exec -it meu_nginx sh&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2.4 Parar e Iniciar Containers
&lt;/h3&gt;

&lt;p&gt;Para iniciar um container existente:&lt;br&gt;
&lt;code&gt;docker container start meu_nginx&lt;/code&gt;&lt;br&gt;
Para parar um container em execução:&lt;br&gt;
&lt;code&gt;docker container stop meu_nginx&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2.5 Reiniciar Container
&lt;/h3&gt;

&lt;p&gt;Para reiniciar um container:&lt;br&gt;
&lt;code&gt;docker container restart meu_nginx&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2.6 Logs de um Container
&lt;/h3&gt;

&lt;p&gt;Para visualizar os logs de um container:&lt;br&gt;
&lt;code&gt;docker logs meu_nginx&lt;/code&gt;&lt;br&gt;
Para acompanhar os logs em tempo real:&lt;br&gt;
&lt;code&gt;docker logs -f meu_nginx&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2.7 Remover Container
&lt;/h3&gt;

&lt;p&gt;Para remover um container:&lt;br&gt;
&lt;code&gt;docker container rm meu_nginx&lt;/code&gt;&lt;br&gt;
Para remover um container que está sendo executado:&lt;br&gt;
&lt;code&gt;docker container rm --force meu_nginx&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2.8 Remover Containers Parados
&lt;/h3&gt;

&lt;p&gt;Para remover todos os containers parados com apenas um comando:&lt;br&gt;
&lt;code&gt;docker container prune&lt;/code&gt;&lt;/p&gt;

</description>
      <category>docker</category>
      <category>nginx</category>
      <category>devops</category>
      <category>containers</category>
    </item>
  </channel>
</rss>
