Ajuda ou complica?
- Facilidade de replicar o ambiente
- Desenvolver em diversas versões da mesma biblioteca
- Não precisar de todas as dependências dos projetos
- “Na minha máquina funcionava”
- Versionar a configuração para executar o serviço
Docker
Localizar imagens - https://hub.docker.com/
Principais comandos
# Listar as imagens locais
docker images
# Rodar um container
docker run php:7.4
# Listar os containers ativos
docker ps
# Executar comandos dentro do container
docker exec meu_container top
# Entrar no container
docker exec -it meu_container bash
# Parar a execução de um container
docker stop meu_container
# Remover um container
docker rm meu_container
Dockerfile
Principais instruções
FROM # Imagem base
WORKDIR # Diretorio base dentro do container
RUN # Executar comando dentro do container
ADD # Adicionar um arquivo para dentro do container
EXPOSE # Expor a porta do serviço para fora do container
ENV # Adicionar variável de ambiente dentro do container
CMD # Comando que será a saida do container
# Salvando uma imagem
docker build -t filipecrespo/ruby_node:1.0.0 .
# Publicando a imagem no Dockerhub
docker push filipecrespo/ruby_node:1.0.0
docker-compose
version # Versão do docker-composer
services # Serviços necessários (banco, front, back, etc)
image # Imagem que o serviço utiliza
build # Indicar qual arquivo dockerfile vai utilizar
working_dir # Diretorio base dentro do container
links # Conecta os containers na rede do docker
depends on # Cria dependencia entre os containers
volumes # Diretorio compartilhado com o container
ports # Porta que será publicada fora do container
env_file # Arquivo com as variáveis de ambiente
environment # Variáveis de ambiente
# Build todos os serviços do docker-composer.yml
docker-compose build
# Iniciar todos os serviços do docker-composer.yml
docker-compose up
# Desligando os serviç
#
# os do docker-composer.yml
docker-compose down
Extra
newrelic-sysmond
newrelic-php5
docker-compose run --service-porun --service-ports --rm $(app_env) webrts --rm $(app_env) web