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