Docker básico
Objetivo do módulo
Ao final do módulo você irá aprender:
- Instalar o docker
- Explicar sobre os componentes do docker
- Como utilizar os priocipais comamndos do docker
Instalando o docker
- Windows
- MacOS
- Ubuntu
- Debian
- Centos
- Fedora
Acesse o endereço da instalação do Docker e execute o arquivo e faça o processo de instalação padrão.
Após o processo de instalação acesse o menu iniciar do windows e procure o aplicativo Docker Desktop e execute-o.
Na barra de notificações irá aparecer um icone do docker com o status "Docker is starting", aguarde até ficar com o status "Docker is running".
Abra o Prompt de Comando ou o Powershell e execute o seguinte comando para confirmar se o docker está funcionando.
docker version
Hello World
Vamos iniciar a nossa jornada com o docker fazendo o nosso primeiro Hello World executando o seguinte comando:
docker run hello-world
Docker Components
Docker Client: é principal maneira que os usuários interagem com o docker.
Docker Host: O Docker possui uma estrutura de cliente/servidor, e tais containers são armazenados em um servidor, chamado de Docker host ou Docker server. O servidor do Docker é responsável por todas as ações relacionadas aos containers. Docker host pode ser local ou remoto.
Docker Daemon: é responsável por receber comandos do client via Command Line ou APIs do tipo REST.
Imagens: são arquivos que contém todo o conteúdo e estrutura de sistemas operacionais. Elas são a base de construção de containers no Docker.
Containers: são os ambientes de execução do Docker, criados a partir de imagens. De forma simplificada, é uma sandbox para processos(uma sandbox, ou "caixa de areia", é um ambiente de teste, que isola o ambiente de produção e o repositório de mudanças não testadas no código e experimentos). Uma imagem é como um template de classe, e containers seriam instâncias dessas classes(instanciados na uma camada que permite gravação da imagem).
Registry: é um repositório de imagens, controla o acesso e facilita a distribuição das imagens.
Existem várias opções no mercado como por exemplo: Container Registry da Google Cloud, Azure Container Registry, Harbor (Solução open-source para nunvem privada) entre outras soluções. O mais conhecido é o Dockerhub da empresa Docker Inc, que oferece uma conta gratuita para projetos abertos.
Comandos básicos
Executar uma imagem
docker run NOME_DA_IMAGEM
Lista de opções e atributos
Opção | Descrição |
---|---|
--name (NOME DO CONTAINER) | Definie o nome do container. Ex.: docker run --name api |
-e (CHAVE)=(VALOR) | Adiciona as variáveis de ambiente -e. Ex.: -e NODE_ENV=prod |
-p (PORTA):(PORTA) | Define os valores das portas a serem utilizadas (PORTA EXTERNA):(PORTA INTERNA). Ex.: -p 8080:8080 |
-d | Executa em modo daemon |
Listar as imagens
docker images
Listar containers
Mostra o consumo de recursos do container docker:
docker ps
Utilização de recursos
Mostra o consumo de recursos do container docker:
docker stats
Visualização de Logs
Mostra o consumo de recursos do container docker:
docker logs NOME_DO_CONTAINER
Parar um container
docker stop NOME_DO_CONTAINER
Remover um container
docker rm NOME_DO_CONTAINER
Remover uma imagem
docker image rmi ID_DA_IMAGEM
Comando | Descrição | Obsevações |
---|---|---|
docker images | Lista as imagens utilizadas | |
docker run (NOME_DA_IMAGEM) | Executa uma imagem | Paramentros utilizados: definição do nome --name, expecificação da porta -p (Ex.: -p 8080:8080), variáveis de ambiente -e (Ex.: -e NODE_ENV=prod) e executa em modo daemon -d |
docker ps | lista a imagens ativas | Se utilizar o parametro -a listar todas as images incluindo as images que encerraram o seu ciclo de vida |
docker stats | Mostra o consumo de recursos do container docker | |
docker logs (NOME_DA_IMAGEM) | Mostra o log do container | |
docker rm (NOME_DA_IMAGEM) | Remove um container específico | Excutar o comando: docker ps para indetificar o nome do container |
docker image rmi (ID_DA_IMAGEM) | Remove uma imagem específica | Excutar o comando: docker images –a para indetificar o id da imagem |
docker exec -it (NOME_DA_IMAGEM) (COMANDO_DESEJADO) | Executa um comando especifico do container | É bastante comum utilizar o comando bash para interagir dentro do container, exemplo: docker exec -it app_php bash. O parametro -it ativa o modo interativo |