Docker (para iniciantes)
- #Docker
Olá a todos! espero que estejam bem.
Recentemente inicie meus estudos com Docker, me deparei com centenas de materiais gratuitos, muitas nomenclaturas "difíceis" e nada muito didático (para alguém que nunca teve contato), Decidi compartilhar aqui com vocês o básico de como conseguir criar e entender a primeira parte dessa longa jornada, espero que gostem, caso tenha feedbacks e dicas , aceito todas elas! Lembrando, sou iniciante e achei interessante tentar ajudar iniciantes com essa pequena dica que consegue recolher e trazer de forma mais didática!
O que e Docker?
- Docker são containers onde podemos baixar imagens de aplicações ou sistemas
e roda-los diretamente em nuvem, ficando claro que e mais econômico e benéfico do que utilizar maquina virtual.
-Podemos ter diversos containers como um navio ,cada contêiner tem suas funções e ambientes.
Vantagens
-evita desperdício de hardware, evitando instalação de maquinas virtuais
-simplifica o gerenciamento de Libs
- imutabilidade
-facilidade do deploy
-empacotamento da aplicação
o Docker e dividido em 3 partes
Cliente
-seria a linha de comando do docker.
-comando que executamos como: ps ,pull e run
Docker Host
- Containers
- Docker Daemon
- Images
Registry
- ngix e etc
*Docker Daemon - servico do linux, o docker cliente se comunica diretamente com o daemon.
-com meu cliente com a variável Docker_host , posso conversar com outros Daemons(hosts), estando em cloud, outras maquinas e etc
-gerencia as imagens
-Apartir das imagens posso criar containers
*Registry - servidor remoto com disponibilidade de imagens, de onde o Docker Daemon baixa as imagens
-podemos possuir Registry com imagens privadas, como em uma empresa por exemplo
-------------------------------------------------------------------------------------------------------------------------------------------------------
Criando Dockerfile
-necessario ser criado com a primeira letra maiuscula
-da o direcionamento de como deve funcionar o container
-instruções de criação
Base do coker file
FROM - é o comando inicial de um docker file, ele vai especificar a imagem que vai servir de base
COPY - Voce pega no diretorio onde esta o dockerfile e copia para o container, ex: COPY aula.txt(arquivo) /app/aula.txt
estou informando que esse arquivo aula.txt sera copiado para a pasta app do meu dockerfile
ADD - adiciona o download de alguma url ao container, pode descompactar arquivos TAR e executa o mesmo que o copy
-------------------------------------------------------------------------------------------------------------------------------------------------------
# build serviço (precisar ter o java 11 e o maven instalado)
mvn clean package
# executar o serviço buildado
java -jar .\service.jar
# criar imagem docker
docker build -t eumagnun/feedback-games:v1 .
#criar container com imagem docker criada
docker run --name feed-games -d -p 8080:8080 eumagnun/feedback-games:v1
#parar container
docker stop SEU_CONTAINER_ID
#iniciar container
docker start SEU_CONTAINER_ID
#remover todos os containers
docker rm -vf $(docker ps -a -q)
#remover todas as imagens
docker rmi -f $(docker images -a -q)