O que é o Docker
Docker é uma plataforma de software que permite que os desenvolvedores criem, gerenciem e implantem aplicativos em contêineres. Um contêiner é uma unidade de software que contém tudo o que um aplicativo precisa para ser executado, incluindo o código, bibliotecas, dependências e configurações. O Docker permite que os desenvolvedores empacotem todos esses elementos em um contêiner e implantem o aplicativo em qualquer ambiente que possua o Docker instalado, sem se preocupar com as diferenças de infraestrutura entre os ambientes.
Além disso, o Docker fornece recursos para gerenciamento de contêineres, como criar, iniciar, parar e excluir contêineres, além de permitir a criação de redes privadas e compartilhamento de volumes de dados entre contêineres. Esses recursos tornam mais fácil para os desenvolvedores criar e gerenciar ambientes de desenvolvimento, teste e produção consistentes e confiáveis.
O Docker é amplamente utilizado para acelerar o desenvolvimento de aplicativos e simplificar o processo de implantação e gerenciamento de infraestrutura.
Arquitetura do Docker
A arquitetura do Docker é composta por vários componentes que trabalham juntos para criar e gerenciar contêineres de aplicativos. Os principais componentes são:
Docker Daemon: É um processo em segundo plano que gerencia todos os contêineres do Docker em uma máquina host. Ele é responsável por criar, iniciar, parar e excluir contêineres, além de gerenciar as imagens de contêineres.
API do Docker: É a interface de programação de aplicativos (API) que permite que os usuários interajam com o Docker. Ela pode ser acessada por meio da linha de comando do Docker, do Docker Compose ou de outras ferramentas.
Imagens do Docker: São pacotes autônomos que contêm todo o código, bibliotecas e dependências necessárias para executar um aplicativo em um contêiner. As imagens são criadas a partir de um Dockerfile, que contém as instruções para construir a imagem.
Registros do Docker: São repositórios que armazenam e distribuem imagens do Docker. O Docker Hub é o registro público mais conhecido, mas também é possível criar registros privados para armazenar imagens proprietárias.
Docker CLI: É a interface de linha de comando do Docker que permite que os usuários executem comandos para gerenciar contêineres, imagens e outros recursos do Docker.
Docker Compose: É uma ferramenta que permite que os usuários definam e gerenciem aplicativos compostos por vários contêineres. Ele usa arquivos YAML para definir os serviços do aplicativo e suas dependências.
Em resumo, a arquitetura do Docker é composta por um daemon, API, imagens, registros, CLI e Docker Compose, todos trabalhando juntos para criar e gerenciar contêineres de aplicativos de maneira eficiente e simplificada.
Comandos dos Docker
Comandos do Docker que podem ser úteis para gerenciar e trabalhar com contêineres e imagens:
Comandos básicos
- docker –version: Verifica a versão do Docker instalada na máquina.
- docker info: Mostra informações detalhadas do Docker, como versão, número de contêineres e imagens, entre outros.
- docker run <imagem>: Cria e executa um novo contêiner com base em uma imagem do Docker.
- docker ps: Lista todos os contêineres em execução no momento.
- docker ps -a: Lista todos os contêineres, incluindo os que não estão em execução.
- docker start <nome/id do contêiner>: Inicia um contêiner previamente criado.
- docker stop <nome/id do contêiner>: Para a execução de um contêiner em execução.
- docker rm <nome/id do contêiner>: Remove um contêiner previamente criado.
- docker rmi <nome/id da imagem>: Remove uma imagem previamente baixada ou criada.
- docker exec -it <nome/id do contêiner> <comando>: Executa um comando dentro de um contêiner em execução.
Comandos para trabalhar com imagens
- docker images: Lista todas as imagens baixadas ou criadas localmente.
- docker pull <nome da imagem>: Baixa uma imagem do Docker Hub ou outro registro.
- docker build <caminho do Dockerfile>: Cria uma nova imagem com base em um Dockerfile.
- docker tag <nome da imagem> <nome da imagem:versão>: Adiciona uma nova tag a uma imagem.
- docker push <nome da imagem>: Envia uma imagem para um registro remoto, como o Docker Hub.
Comandos para gerenciar redes e volumes
- docker network create <nome da rede>: Cria uma nova rede personalizada.
- docker network ls: Lista todas as redes disponíveis.
- docker network connect <nome da rede> <nome/id do contêiner>: Conecta um contêiner a uma rede.
- docker volume create <nome do volume>: Cria um novo volume personalizado.
- docker volume ls: Lista todos os volumes disponíveis.
- docker volume inspect <nome do volume>: Mostra informações detalhadas sobre um volume.
- docker volume rm <nome do volume>: Remove um volume previamente criado.
Comandos para trabalhar com Docker Compose
- docker-compose up: Cria e inicia todos os serviços definidos em um arquivo docker-compose.yml.
- docker-compose down: Para a execução de todos os serviços definidos em um arquivo docker-compose.yml.
- docker-compose ps: Lista todos os serviços definidos em um arquivo docker-compose.yml.
- docker-compose logs <nome do serviço>: Mostra os logs de um serviço definido em um arquivo docker-compose.yml.
Comandos avançados
- docker inspect <nome/id do contêiner>: Mostra informações detalhadas sobre um contêiner.
- docker stats <nome/id do contêiner>: Mostra estatísticas em tempo real de um contêiner em execução.
- docker top <nome/id do contêiner>: Mostra os processos em execução em um contêiner.
- docker diff <nome/id do contêiner>: Lista os arquivos e diretórios alterados no sistema de arquivos de um contêiner desde que o contêiner foi criado
Minicursos Gratuitos:
- Docker: cursodevops.com.br/cursos-devops-gratuitos