Anotações do curso ‘Docker: Ferramenta essencial para Desenvolvedores’
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