Docker
  • Introdução a Containeres e Docker
    • Introdução
    • O que é um container e suas vantanges
    • VM versus Container
    • Como funcionam os containers
    • Linux
    • Container sem Docker
      • cgroup
      • cpu.max
    • LxC
    • LxD
    • Containers versus Imagens
    • Arquitetura do Docker
    • Arquitetura do Docker mais a fundo
    • Projetos Open Source
  • Instalação do Docker
    • Linux
    • Windows
      • Docker Desktop
      • Rancher Desktop
      • WSL
    • Mac
    • Visual Studio Code
  • Primeiros Passos com Docker
    • Criação e listagem básica de um container
    • Interagindo com o container
    • Executando containers continuamente
      • nginx
      • docker container run
      • docker container run nginx
      • docker container run -d nginx
      • docker container exec
    • Como usar publish de porta
      • docker container stop
      • docker container start
      • docker container rm
      • docker container rm -f $(docker container ls -qa)
    • Containers e variáveis de ambiente
      • docker container run -e
  • Desafio
    • Desafio 01 - Banco de Dados Postgresql
    • Desafio 02 - Banco de Dados MySQL
    • Desafio 03 - Banco de Dados MongoDB
  • Executando a sua primeira aplicação em containers
    • Introdução
    • Preparando o container para a aplicação
    • Executando a aplicação
      • docker container cp
  • Primeiros Passos com Docker Images
    • Introdução
    • OverlayFS na Prática
    • Copy-on-Write
    • Formas de criar uma imagem Docker
    • Como funciona o Docker Commit
    • Docker Commit na Prática
      • docker commit
    • Entendendo melhor a sua imagem
      • docker image history
      • docker image inspect
    • Entrando mais a fundo na imagem
    • Como usar a imagem Docker no modo raiz
  • Avançando em imagens Docker com Dockerfile
    • O que é Dockerfile
    • Primeira Imagem com Dockerfile
      • docker image build
    • Como funciona a construção com Dockerfile
    • Possibilidades com Dockerfile
    • FROM
    • RUN
    • WORKDIR
    • COPY
    • ADD
    • LABEL
    • ENV
    • VOLUME
    • ARG
    • EXPOSE
    • USER
    • ENTRYPOINT
    • CMD
    • ENTRYPOINT versus CMD
    • Principais comandos com imagem
    • Imagem da aplicação com Dockerfile
    • Comparando Docker Commit com Dockerfile
  • Docker Registry
    • Introdução
    • Docker Hub
    • Sua imagem com o nome certo
    • Renomear imagens com Docker Tag
      • docker image tag
    • Enviando a sua primeira imagem para o Docker Hub
      • docker image push
      • docker image pull
  • Algumas boas práticas para construção de imagem
    • Um processo por container
    • Usar imagens confiáveis
    • Otimizar sempre a sua imagem
    • Uso inteligente das camadas
    • Dockerignore
  • Multistage Build
    • Introdução
    • Multistage build na prática
    • Target para fazer o build
      • docker image build --target
    • Imagem externa no Multistage build
    • Usar um estágio de build como base
  • Docker Volume
    • Introdução
      • docker volume
    • Bind Mount
    • Particularidades do Bind Mount
    • Bind Mount no Windows
    • Exemplo com Bind Mount
    • Docker Volume
      • docker volume create
      • docker volume inspect
      • docker volume ls
      • docker volume prune
      • docker volume rm
    • Onde ficam os arquivos do Docker volume?
    • Usando o volume no Dockerfile
    • Como fazer backup de um Docker Volume
    • Exemplo com Docker Volume
    • Storage tmpfs
    • Como criar algo funcional com o que aprendemos
  • Network
    • Introdução
    • Componentes do Docker Network
    • Rede Bridge na prática
      • docker network
      • docker network create
      • docker network inspect
      • docker network ls
      • docker network prune
      • docker network rm
    • Criando a sua rede bridge
      • docker network connect
      • docker network disconnect
    • Como funciona a rede bridge por dentro
    • Rede Host na prática
    • Rede none da prática
    • Como adicionar domínios no seu container
  • Aplicação 100% no Docker
    • Introdução
    • Criação da Imagem e Envio para o Docker Hub
    • Criação do Docker Network
    • Container do PostgreSQL
    • Container da Aplicação Web
    • Atualização da aplicação
  • Docker Compose
    • Introdução
      • docker compose
    • A evolução do docker compose
    • Criação básica de um Docker Compose
      • docker compose attach
      • docker compose build
      • docker compose config
      • docker compose cp
      • docker compose create
      • docker compose down
      • docker compose events
      • docker compose exec
      • docker compose images
      • docker compose kill
      • docker compose logs
      • docker compose ls
      • docker compose pause
      • docker compose port
      • docker compose ps
      • docker compose pull
      • docker compose push
      • docker compose restart
      • docker compose rm
      • docker compose run
      • docker compose scale
      • docker compose start
      • docker compose stats
      • docker compose stop
      • docker compose top
      • docker compose unpause
      • docker compose up
      • docker compose version
      • docker compose wait
      • docker compose watch
    • Variáveis de Ambiente
    • Volume Bind Mount
    • Docker Volume
    • Docker Network - Bridge
    • Docker Network - Host Driver e Add Host
    • Ordenando a execução dos containers
    • Compose com build de imagem
    • Como Parametrizar o Compose com Variáveis de Ambiente
    • Múltiplos Composes
    • Extends
    • Merge
    • Include
    • Profiles
    • Comandos importantes do Docker Compose
  • Troubleshooting
    • Introdução
    • Docker Info
    • Docker Events
    • Docker Logs
    • Docker Inspect
    • Docker Top
    • Docker Stats
    • Docker Exec
  • Resiliência e Gerenciamento de Recursos
    • Introdução
    • Docker Restart
      • Introdução
      • on-failure
      • unless-stopped
      • always
      • Docker Compose
    • Healthcheck
      • Introdução
      • Linha de Comando
      • Docker Compose
      • Direto na Imagem
    • Gerenciamento de Recurso
      • CPU
        • Como Gerenciar CPU
        • Prática
      • Memória
        • Como Gerenciar Memória
        • Prática
      • Docker Compose
  • Fazendo um ambiente mais seguro
    • Introdução
    • Docker Scout
      • Introdução
      • Verificação Simples de Imagem
      • Como adicionar um repositório
      • Primeira melhoria na imagem
  • BUSCA RÁPIDA
    • Referências
    • Comandos
      • docker commit
      • docker compose
      • docker container
      • docker image
      • docker network
      • docker volume
    • Dockerfile
Powered by GitBook
On this page
  1. Avançando em imagens Docker com Dockerfile

Principais comandos com imagem

Aqui estão os principais comandos relacionados ao gerenciamento de imagens no Docker, que você pode usar para criar, inspecionar, manipular e remover imagens. Esses comandos são essenciais para trabalhar eficientemente com contêineres no Docker.

1. docker pull

Baixa uma imagem do Docker Hub ou de outro repositório de imagens.

docker pull <imagem>:<tag>
  • Exemplo:

    docker pull ubuntu:20.04

    Isso baixa a imagem do Ubuntu 20.04 do Docker Hub.

2. docker images

Lista todas as imagens disponíveis localmente no host.

docker images
  • Exemplo:

    docker images

    Isso exibe uma lista de todas as imagens disponíveis no sistema.

3. docker build

Constrói uma imagem a partir de um Dockerfile.

docker build -t <nome-da-imagem>:<tag> <caminho-do-dockerfile>
  • Exemplo:

    docker build -t minha-imagem:1.0 .

    Isso constrói uma imagem chamada minha-imagem com a tag 1.0 usando o Dockerfile no diretório atual.

4. docker tag

Adiciona uma tag a uma imagem, permitindo que ela seja referenciada por um nome diferente.

docker tag <imagem-existente>:<tag-existente> <novo-nome>:<nova-tag>
  • Exemplo:

    docker tag minha-imagem:1.0 meu-repositorio/minha-imagem:latest

    Isso cria uma nova tag para minha-imagem:1.0 com o nome meu-repositorio/minha-imagem:latest.

5. docker push

Envia uma imagem para um repositório, como o Docker Hub.

docker push <nome-da-imagem>:<tag>
  • Exemplo:

    docker push meu-repositorio/minha-imagem:latest

    Isso envia a imagem meu-repositorio/minha-imagem:latest para o repositório especificado.

6. docker rmi

Remove uma ou mais imagens do sistema local.

docker rmi <imagem>:<tag>
  • Exemplo:

    docker rmi minha-imagem:1.0

    Isso remove a imagem minha-imagem:1.0 do sistema local.

7. docker inspect

Exibe informações detalhadas sobre uma imagem ou contêiner.

docker inspect <imagem-ou-container>
  • Exemplo:

    docker inspect minha-imagem:1.0

    Isso exibe informações detalhadas sobre a imagem minha-imagem:1.0.

8. docker history

Mostra o histórico de comandos utilizados para construir uma imagem.

docker history <imagem>:<tag>
  • Exemplo:

    docker history ubuntu:20.04

    Isso exibe o histórico de comandos que foram usados para construir a imagem ubuntu:20.04.

9. docker save

Salva uma ou mais imagens em um arquivo tar.

docker save -o <arquivo.tar> <imagem>:<tag>
  • Exemplo:

    docker save -o minha-imagem.tar minha-imagem:1.0

    Isso salva a imagem minha-imagem:1.0 em um arquivo chamado minha-imagem.tar.

10. docker load

Carrega uma imagem a partir de um arquivo tar.

docker load -i <arquivo.tar>
  • Exemplo:

    docker load -i minha-imagem.tar

    Isso carrega a imagem de minha-imagem.tar para o Docker.

11. docker export

Exporta o sistema de arquivos de um contêiner como um arquivo tar. Diferente do docker save, que salva uma imagem inteira, docker export salva apenas o sistema de arquivos do contêiner.

docker export -o <arquivo.tar> <container-id>
  • Exemplo:

    docker export -o meu-container.tar meu-container

    Isso exporta o sistema de arquivos do contêiner meu-container para o arquivo meu-container.tar.

12. docker import

Cria uma imagem Docker a partir de um arquivo tar de um sistema de arquivos.

docker import <arquivo.tar> <nome-da-imagem>:<tag>
  • Exemplo:

    docker import meu-container.tar minha-nova-imagem:1.0

    Isso cria uma nova imagem Docker chamada minha-nova-imagem:1.0 a partir do arquivo meu-container.tar.

13. docker prune

Remove imagens não utilizadas para liberar espaço em disco.

docker image prune
  • Exemplo:

    docker image prune -a

    Isso remove todas as imagens que não estão associadas a contêineres ativos.

Resumo

Esses comandos são essenciais para gerenciar imagens no Docker, cobrindo desde a criação e inspeção até o armazenamento e remoção de imagens. Se precisar de mais detalhes ou exemplos específicos, estou à disposição para ajudar!

Laboratório

  1. docker commit

  2. docker build

  3. docker image ls

$ docker image ls
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
<none>        <none>    f40b9135406a   5 hours ago    78.1MB
ubuntu-curl   latest    e39d94f7e5ad   5 hours ago    78.1MB
<none>        <none>    76f33f5181dc   16 hours ago   127MB
<none>        <none>    9b7bba306cec   16 hours ago   127MB
<none>        <none>    56cf8f53c8d7   16 hours ago   127MB
<none>        <none>    f3848833eef5   16 hours ago   127MB
<none>        <none>    ce68034f731f   16 hours ago   127MB

Destaque para as imagens não mais nomeadas, ocorrida no processo de construção e reconstrução da imagem:

REPOSITORY TAG
<none>     <none>
  1. docker image rm f40b9135406a

  2. docker image prune

    1. docker container stop $(docker container ls -q)

    2. docker container rm $(docker container ls -qa)

    3. docker container rm -rf $(docker container ls -qa)

PreviousENTRYPOINT versus CMDNextImagem da aplicação com Dockerfile

Last updated 9 months ago