apresentacao docker

17
Docker Sistemas Distribuídos – Profº.: Romulo Fagundes Componentes: Mauricio Martins, Rodrigo Emerenciano e Wilson Vieira

Upload: mauricio-martins

Post on 09-Apr-2017

190 views

Category:

Software


1 download

TRANSCRIPT

Docker

Sistemas Distribuídos – Profº.: Romulo FagundesComponentes: Mauricio Martins, Rodrigo Emerenciano

e Wilson Vieira

Rodrigo , 10/10/2015

O que é o Docker?

● O Docker são containers que permitem empacotar aplicativos ou trechos de códigos, em um sistema de arquivos completo, que contém tudo o que é necessário para execução. Garantido sua autenticidade.

Características

● Leve:

– Compartilhamento do kernel do S.O. e uso mais eficiente da memória RAM.

● Aberto (Open Source):

– Sistema disponível nas principais distribuições:

● Mac OS, Linux e Windows.● Seguro:

– Os containers isolam as aplicações, umas das outras e de sua infra-estrutura, com uma camada adicional de proteção.

Diferenças entre VM e Containers

Máquinas Virtuais Containers

Diferenças entre VM e Containers

● Máquina virtual: inclui aplicações, binários e bibliotecas necessárias a um sistema operacional específico.

● Container: inclui aplicações e todas as suas dependências mais compartilham o mesmo kernel, com os outros containers. Sem vínculo com infra-estruturas específicas, sendo possível ser executado em qualquer computador.

Para quê Docker?

● Reduzir o custo da infraestrutura, com número menor de máquinas físicas,

● Agilizar o deploy das suas aplicações.

Criando um Docker container

Exemplo: ● Necessário primeiro saber o que se deseja:

–docker search ubuntu● Para baixar imagem oficial docker HUB, do ubuntu 14.10:

–docker pull repositorio/ubuntu:14.10● Para iniciar o container a partir da imagem adquirida:

–docker run -it ubuntu:14.10● Para encerrar o container: Ctrl+D

● Para somente sair sem encerrar: Ctrl+P+Q

Principais Comandos

● Listar containers : docker ps

● Listar imagens: docker images

● Para voltar ao container: docker attach <ID CONTAINER>

● Para saber as modificações que foram realizadas no container: docker diff <ID CONTAINER>

● Para finalizar ou parar um container : docker stop <ID CONTAINER>

Principais Comandos (cont.)

● Remover um ou mais containers: docker rm <ID CONTAINER>

● Remover uma ou mais imagens: docker rmi <ID CONTAINER>

Fluxo de trabalho Típico

Dockerfile

● É composto pelo conjunto de instruções que descreve passos para a construção de uma imagem Docker:– Qual imagem base usada para o novo container

– Quais os próximos passos a serem tomados para instalar várias dependências e aplicações.

– Quais arquivos necessários para serem apresentados na imagem, e como serão disponibilizadas no container

– Que portas serão expostas

– Que comando deve rodar quando um container em sua inicialização.

Dockerfile (instruções)

RUN Executa um comando Linux para configuração e instalação

ENTRYPOINT O roteiro final ou aplicativo usado parainicialização do container, fazendo-o umaplicativo executável

CMD Fornece argumentos ao ENTRYPOINT

LABEL Metadados nome/valor sobre a imagem

ENV Configura variáveis de ambiente

COPY Copia arquivos no container

ADD Alternativa ao Copy

WORKDIR Seleciona diretório de trabalho para instruções RUN, CMD, ENTRYPOINT, COPY, ou ADD

EXPOSE Portas do container serão expostas

VOLUME Cria um ponto de montagem

USER Usuário para rodar o RUN, CMD ou instruções ENTRYPOINT

Dockerfile

Para construir a imagem, é necessário apenas estar com o arquivo Dockerfile no diretório:

● Exemplo:

– docker build -t repositório/nomedaimagem:versão .

Repositório Docker HUB

https://hub.docker.com

Docker HUB

Enviando imagem para repositório (exemplo):

● docker commit <ID container> docker.io/nomedeusuário/nomedaimagem

● docker login

● docker push docker.io/nomedeusuário/nomedaimagem

Referências

● https://hub.docker.com/

● http://www.docker.com/

● http://docs.docker.com/linux/started/

● https://github.com/JBoss-Dockerfiles/wildfly

● https://hub.docker.com/r/jboss/wildfly/~/dockerfile/

● http://crosbymichael.com/dockerfile-best-practices.html

● https://docs.docker.com/articles/dockerfile_best-practices/

Referências

Treinamentos:

● https://training.docker.com/self-paced-training

● https://training.docker.com/