Desenvolvedor PHP na FTD
O que é o Docker?
Principais Conceitos
VMs x Containers
Vantagens
Instalação
Comandos básicos de Docker
Criando imagens com Dockerfile
Ferramentas Avançadas
Docker é uma plataforma open-source escrita em GO cuja finalidade é criar ambientes isolados (Containers) para aplicações e serviços. Seu modelo de virtualização é diferente do que tradicionalmente conhecemos, pois está no nível do sistema operacional.
Um dos conceitos mais importantes do Docker são as imagens, que podemos definir como: snapshots de um aplicação que podem ser instanciados, tornando-se assim containers.
Nada mais são que processos rodando em um kernel compartilhado com seu host. O benefício do container ser um processo é que esse processo consome os recursos nativos do hardware sem virtualização. O processo é virtualizado, mas o processamento não é virtualizado.
Atualmente o Docker roda apenas em maquinas com Linux 64 bits com kernel 3.8 ou maior, consequentemente seus containers terão que ser um linux 64 bits.
Para Windows e MacOS há algumas particularidades.
Para realizar a instalação do Docker basta seguir os procedimentos na documentação: https://docs.docker.com/engine/installation/
Para subir um container precisamos de uma imagem base. Para se obter uma imagem basta acessa o https://hub.docker.com ou https://store.docker.com
Baixar uma imagem
docker image pull image_name
* Pode-se utilizar dois pontos para definir uma versão específica da imagem.
docker image pull image_name:version
Listar imagens
docker image ls
Apagar imagens
docker image rmi image_name
Criar e iniciar um container, executar um comando
docker container run -it --name container_name image_name command
Exem.:
docker container run -it --name my-container node bash
Criar e iniciar um container, executar comando e destruir o container
docker container run --rm -it --name my-container node bash
* É recomendável utilizar o parâmetro —rm , desta forma o container é removido automaticamente quando você sai dele, evitando ter containers zumbis.
Listar containers
Para listar os containers em execução
docker container ls
No caso de precisar ver todos os containers existentes só adicionar -a
docker container ls -a
Apagar um container
docker container rm container_name
Volumes
docker container run -it --name my-container -v /home/exemple:/data node bash
Expondo Portas
docker container run -it --name my-container -p 8080:8080 node bash
Obter o IP de um container
docker container inspect container_name
FROM ubuntu:16.04
MAINTAINER bsdev bmsrox@gmail.com
RUN apt-get update && apt-get -y install apache2 && apt-get clean
ENV APACHE_RUN_USER www-data
ENV APACHE_RUN_GROUP www-data
ENV APACHE_RUN_DIR /var/run/apache2
ENV APACHE_LOCK_DIR /var/run/
ENV APACHE_PID_FILE /var/run/apache2.pid
ENV APACHE_LOG_DIR /var/log/apache2
EXPOSE 80
WORKDIR /var/www/html
ADD apache-config.conf /etc/apache2/sites-enabled/000-default.conf
CMD ["/usr/sbin/apache2", "-D", "FOREGROUND"]
Para construir a imagem a partir de um Dockerfile é só executar o seguinte comando:
docker image build -t image_name .