26
EQUIPE: Benicio, Aluisio e Matheus

Introdução ao docker

Embed Size (px)

Citation preview

Page 1: Introdução ao docker

EQUIPE: Benicio, Aluisio e Matheus

Page 2: Introdução ao docker

O que é?

É uma plataforma aberta para desenvolvedores e administradores de sistemas para construir, entregar e rodar aplicações distribuidas

Page 3: Introdução ao docker

O que é?

Docker não é uma ferramenta de virtualização de máquinas, ele é um ambiente de virtualização de Linux, construído sobre os LinuX Containers (LxC), que utiliza a funcionalidade cgroups para criar e rodar ambientes Linux virtuais isolados em um único host.

Page 4: Introdução ao docker

Composto:

* Docker Engine * Docker Hub Docker Engine que é uma leve ferramenta de execução e empacotamento.

Page 5: Introdução ao docker

Composto:

Docker Hub, um serviço em nuvem responsável pelo compartilhamento de aplicações e automação de fluxos de trabalho. (Imagens)

Page 6: Introdução ao docker

Dilema do Docker

O Docker permite que as aplicações sejam rapidamente montadas e elimina o atrito e a diferença entre os ambientes de desenvolvimento, testes e produção, ou seja, sem essa de

“Na minha máquina funciona”

“Mas eu testei!!!”

“Estranho? Parou de funcionar do nada”!

“Será que vai dar problema se eu alterar isso?”

Page 7: Introdução ao docker

O que são Containers? Nada mais é que um chroot. Nele é possível definir recursos como memória, rede, sistema operacional, aplicação, serviço e etc. Em um Container Docker é possível fazer testes, desenvolvimentos, estudos, etc. Além disso, também é possível utilizá-lo em um ambiente de produção.

Page 8: Introdução ao docker

Porque usar Containers?

Velocidade; Boot em questão de segundos; Economia de recursos; Os processos rodando dentro de um container são vistos como um processo no sistema Host; É possível subir vários containers ao mesmo tempo, consumindo o minimo de recursos do hardware físico ou virtual.

Page 9: Introdução ao docker

Containers x Máquinas Vituais

Page 10: Introdução ao docker

O que é uma imagem? Uma imagem é um template para rodar um container. Uma imagem é dividida em várias

camadas de acordo com a execução de comandos durante seu build.

Essas imagens podem ficar armazenadas no

DockerHub, que é repositório público e privado que disponibiliza diversos recursos como sistema de autenticação, build de imagens automático, entre outros.

Page 11: Introdução ao docker

Mas as imagens do DockerHub são confiáveis?

Caso não confie em uma imagem baixada do DockerHub, basta executar o comando "docker inspect (nome da imagem)" para listar todas as

informações contidas naquela imagem.

Page 12: Introdução ao docker

E as camadas? Para visualizar as camadas, utilizamos o comando "docker history (nome da imagem)"

Saída do comando:

IMAGE CREATED CREATED BY SIZE COMMENT

9f587567bce1 33 hours ago /bin/sh -c #(nop) ENTRYPOINT ["/usr/sbin/htt 0 B

240465ca487d 33 hours ago /bin/sh -c #(nop) EXPOSE 80/tcp 0 B

94643bf2f8a9 33 hours ago /bin/sh -c #(nop) LABEL Description=Apache S 0 B

4687cdc38101 34 hours ago /bin/sh -c yum update -y && yum install httpd 98.19 MB

dd1c6ab5681f 34 hours ago /bin/sh -c #(nop) MAINTAINER Matheus Alves e 0 B

cf2c3ece5e41 12 weeks ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0 B

<missing> 12 weeks ago /bin/sh -c #(nop) LABEL name=CentOS Base Imag 0 B

<missing> 12 weeks ago /bin/sh -c #(nop) ADD file:f0ec297ab653ffb2c5 194.6 MB

<missing> 12 weeks ago /bin/sh -c #(nop) MAINTAINER https://github.c 0 B

Page 13: Introdução ao docker

O que é um Dockerfile

O Dockerfile é um arquivo onde são determinados todos os

detalhes de uma imagem. Nele são especificados a imagem

que vai ser utilizada, aplicativos que serão instalados, comandos

a serem executados, etc. Ele se assemelha ao makefile utilizado

para compilação de programas em C, por exemplo, mas para criação

de imagens.

Page 14: Introdução ao docker

Exemplo de Dockerfile

FROM centos:6

MAINTAINER Matheus Alves [email protected]

RUN yum update -y && yum install httpd -y && yum clean all

ENV NO_PROXY="localhost"

LABEL Description="Apache Server"

VOLUME /var/www/html/

EXPOSE 80

ENTRYPOINT ["/usr/sbin/httpd","-D","FOREGROUND"]

Page 15: Introdução ao docker

Comandos Utilizados

FROM => Indica a imagem que vai ser utilizada como base.

MAINTAINER => Autor da imagem.

RUN => Executa comandos durante a criação da imagem.

ENV => Define variáveis de ambiente.

LABEL => Adiciona metadados à imagem.

VOLUME => Define um volume a ser montado no container.

EXPOSE => Informa portas nas quais o container vai ficar ouvindo.

ENTRYPOINT => Permite rodar um executável. O container será

finalizado após o término da execução do mesmo.

Page 16: Introdução ao docker

Outros Comandos

ADD => Copia arquivos, diretórios, arquivos TAR ou outros arquivos

remotos e os adicionam ao filesystem do container.

CMD => Executa um comando no inicio da execução do container.

COPY => Copia novos arquivos e diretórios e os adicionam ao

filesystem do container.

USER => Determina qual o usuário será utilizado na imagem.

WORKDIR => Altera o diretorio / para o especificado.

Page 17: Introdução ao docker

Executando o build do Dockerfile

Para executar o build de um Dockerfile como esse do exemplo,

basta usar o comando "docker build -t apache:1.0 .", caso esteja no

mesmo diretório do Dockerfile, ou substituir o ponto pelo caminho do

diretório em que o Dockerfile se localiza. Após a execução do build

estará disponível uma imagem com a tag especificada para a utilização

em novos containers.

Page 18: Introdução ao docker

Instalação

https://www.docker.com/

Page 19: Introdução ao docker

Plataformas suportadas

Page 20: Introdução ao docker

Instalação Windows Requisitos

Windows 10 Pro 64 bits

Enterprise and Education (1511 November update, Build 10586 or later)

Microsoft Hyper-V

Page 21: Introdução ao docker

Instalação Windows

1 - Instalar o arquivo InstallDocker.msi

2 - E Inciar o Docker For Windows

Configuração

Page 22: Introdução ao docker

Testando a instalação

Page 23: Introdução ao docker

Escolha seu terminal favorito!

1 – Prompt

2 - Power shell

3 - Cheque a versão ‘docker --version’

Page 24: Introdução ao docker

Criando um container Ubuntu

Page 25: Introdução ao docker

Exemplo prático

1 - Baixar um container Ubuntu

2 - Instalar um servidor Web (Nginx)

3 - Salvar este container com o servidor instalado

4 - Iniciar um novo container a partir dessa imagem

5 - Acessar uma página web deste serviço.

Page 26: Introdução ao docker

Comandos do Exemplo

1 - docker run -i -t ubuntu /bin/bash

2 - apt-get update && apt-get install -y nginx

3 - /etc/init.d/ngninx start

4 - docker commit <id> testefa7/ubuntu:version1

5 - docker images

6 - docker run -i -t -p 8080:80 testefa7/ubuntu:version1 /bin/bash

7 - docker attach id