Anotações do curso ‘Docker: Ferramenta essencial para Desenvolvedores’

3 minutos de leitura

Atualizado em:

Em 2020 fiz o curso 'Docker: Ferramenta essencial para Desenvolvedores' na Udemy, Este post são anotações simples que fiz durante este curso.

O que são containers?

  • Processo segregado usando o mesmo kernel da máquina host
  • Sistema de arquivos isolado
  • Ambiente leve e portátil

O que são imagens docker

  • Modelo de sistema de arquivo usado para criar um container
  • É criada através de um processo build
  • São armazenadas em repositórios no Register (ex dockerhub)
  • São compostas por uma ou mais camadas (layers). A junção dessas camadas forma uma imagem.
  • Todas as camadas que formam a imagem são somente leitura, menos a última que pode ser alterada quando um container for iniciado
  • Uma camada representa uma ou mais mudanças no sistema de arquivos
  • A imagem é como se fosse uma classe da OO, é um modelo onde é possível criar múltiplos containers
  • O cache local é baseado nessas camadas, logo para se baixar uma nova imagem é reaproveitado camadas em comum já baixadas

Criando e rodando um conatiner

docker container run –name [nome] //cria o container
docker container start –ai [nome] //executa novamente o container criado
docker container ls/ps //lista os conatiner em execução no momento
docker container ls/ps –a //lista todos os container, até os inativos
docker container run –p [porta ex]:[port int] nginx //roda o container exportando a porta 8080 para fora
docker container run -d --name tested -p 80:80 -v [diretorio do host a ser mapeado]:[diretorio interno] nginx // rodar em background

Resumo comandos básicos

docker container run ... (criar um novo)
docker container start [nome]
docker container restart [nome]
docker container stop [nome]
docker container logs [nome]
docker container inspect [nome]
docker container exec [nome] [comado] //executa um comando dentro do container
docker container --help
docker image --help
docker volume --help

Trabalhando com imagens

As tags são ponteiros para imagens especificas

O ideal é não trabalhar com a versão ‘lasted’ mas sim com versões especificas, para evitar que a imagem seja atualizada automaticamente e alguma função possa ser quebrada

Cada comando no docker file é uma nova camada na imagem

docker image pull redis:lasted // baixa a imagem, o docker container run fiz isso em um dos seus passos
docker image ls //lista todas as imagens
docker image tag redis:lasted [nome] // cria uma nova tag baseado na imagem
docker image rm [nome] // remover uma tag
docker image inspect [nome]//inspecionar uma imagem
docker image build //construir uma imagem
docker image push // publicar uma imagem no registro local ou remoto
docker image build --build-arg S3_BUCKET=app -t build-com-arg . // passando argumentos no build

Rede

docker network ls // lista as redes disponiveis, por padrão as redes padrões mas é possível criar novos modelos

None network

Containers ficam isolados em si mesmos, ideal para aplicações que não usam nenhum recurso de rede

docker container run –d –net none debian

Bridge

Por padrão os containers estão em uma bridge, onde os containers se comunicam por essa rede

docker network inspect bridge

Host

Usa diretamente a interface de rede da maquina host

Tem uma proteção mais baixa, ganha na velocidade

Docker compose

Agrupa varias imagens

docker-compose up
docker-compose up –d //deamon
docker-compose down
docker-compose ls
docker-compose logs –f –t
docker-compose up –d –scale worker=3 // escala esse serviço, irá subir 3

[]´s

Deixe um comentário