SlideShare uma empresa Scribd logo
EQUIPE: Benicio, Aluisio e Matheus
O que é?
É uma plataforma
aberta para
desenvolvedores e
administradores
de sistemas para
construir, entregar
e rodar aplicações
distribuidas
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.
Composto:
* Docker Engine
* Docker Hub
Docker Engine
que é uma leve
ferramenta de execução
e empacotamento.
Composto:
Docker Hub,
um serviço em nuvem responsável pelo compartilhamento
de aplicações e automação de fluxos de trabalho.
(Imagens)
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?”
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.
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.
Containers x Máquinas Vituais
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.
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.
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
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.
Exemplo de Dockerfile
FROM centos:6
MAINTAINER Matheus Alves emmanoelcoelholima@gmail.com
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"]
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.
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.
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.
Instalação
https://www.docker.com/
Plataformas suportadas
Instalação Windows
 Requisitos
Windows 10 Pro 64 bits
Enterprise and Education (1511 November
update, Build 10586 or later)
Microsoft Hyper-V
Instalação Windows
1 - Instalar o arquivo
InstallDocker.msi
2 - E Inciar o Docker For Windows
Configuração
Testando a instalação
Escolha seu terminal favorito!
1 – Prompt
2 - Power shell
3 - Cheque a versão ‘docker --version’
Criando um container Ubuntu
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.
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

Mais conteúdo relacionado

PPTX
Docker Basics
DuckDuckGo
 
PDF
Docker Compose Explained
Shawn Sorichetti
 
PPTX
Docker 101 : Introduction to Docker and Containers
Yajushi Srivastava
 
PDF
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
Edureka!
 
PDF
Docker Registry V2
Docker, Inc.
 
PDF
Treinamento Docker Básico
André Justi
 
PPTX
Intro to docker
Abderrahmane Mechri
 
PDF
Apresentação Docker
André Justi
 
Docker Basics
DuckDuckGo
 
Docker Compose Explained
Shawn Sorichetti
 
Docker 101 : Introduction to Docker and Containers
Yajushi Srivastava
 
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
Edureka!
 
Docker Registry V2
Docker, Inc.
 
Treinamento Docker Básico
André Justi
 
Intro to docker
Abderrahmane Mechri
 
Apresentação Docker
André Justi
 

Mais procurados (20)

PDF
introduction to Vue.js 3
ArezooKmn
 
PDF
Docker 101: An Introduction
POSSCON
 
PPTX
Docker basics
AmanSoni129
 
PPTX
Introduction to Docker
Pubudu Jayawardana
 
PDF
Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...
Edureka!
 
PDF
Introduction to Docker
Luong Vo
 
PDF
Docker (Compose) 활용 - 개발 환경 구성하기
raccoony
 
PDF
A Hands-on Introduction to Docker
CodeOps Technologies LLP
 
PDF
Docker 101 - Getting started
Matheus Marabesi
 
PPTX
Introduction to Containers and Docker
Fayçal Bziou
 
PDF
A Hands-On Introduction To Docker Containers.pdf
Edith Puclla
 
PDF
Introdução ao React
Luiz Paulo dos Prazeres Júnior
 
PDF
An introduction to React.js
Emanuele DelBono
 
PDF
도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!
pyrasis
 
PPTX
What is Docker
Pavel Klimiankou
 
PPTX
Installing and running Postfix within a docker container from the command line
dotCloud
 
PPTX
Dockers and containers basics
Sourabh Saxena
 
PDF
Docker swarm
Alberto Guimarães Viana
 
PDF
Docker 101: Introduction to Docker
Docker, Inc.
 
PDF
Docker, mais qu’est-ce que c’est ?
Julien Maitrehenry
 
introduction to Vue.js 3
ArezooKmn
 
Docker 101: An Introduction
POSSCON
 
Docker basics
AmanSoni129
 
Introduction to Docker
Pubudu Jayawardana
 
Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...
Edureka!
 
Introduction to Docker
Luong Vo
 
Docker (Compose) 활용 - 개발 환경 구성하기
raccoony
 
A Hands-on Introduction to Docker
CodeOps Technologies LLP
 
Docker 101 - Getting started
Matheus Marabesi
 
Introduction to Containers and Docker
Fayçal Bziou
 
A Hands-On Introduction To Docker Containers.pdf
Edith Puclla
 
Introdução ao React
Luiz Paulo dos Prazeres Júnior
 
An introduction to React.js
Emanuele DelBono
 
도커 무작정 따라하기: 도커가 처음인 사람도 60분이면 웹 서버를 올릴 수 있습니다!
pyrasis
 
What is Docker
Pavel Klimiankou
 
Installing and running Postfix within a docker container from the command line
dotCloud
 
Dockers and containers basics
Sourabh Saxena
 
Docker 101: Introduction to Docker
Docker, Inc.
 
Docker, mais qu’est-ce que c’est ?
Julien Maitrehenry
 
Anúncio

Semelhante a Introdução ao docker (20)

PDF
Orquestrando Docker Containers: Machine, Swarm e Compose
Roberto Hashioka
 
PDF
Aulão de docker
Renato Lucena
 
PDF
Olá docker
Marcos Ellys
 
PDF
Primeiros passos com o Docker
WebSix
 
PDF
Docker - Tutorial for beginners
Rafael Chiavegatto
 
PDF
TDC 2016 Floripa - Workshop docker
Rafael Gomes
 
PDF
apresentação e introdução aos comandos básicos docker
Antonio Lobato
 
PDF
Docker: um linux container engine
Hudson Brendon
 
PDF
Oficina docker
Morvana Bonin
 
PPTX
Docker e suas tecnologias
Cesar Augusto Nogueira
 
PPTX
Docker e suas tecnologias por @cesarnog
Cesar Augusto Nogueira
 
PDF
Introdução-a-Docker-compactado.pdf
dadalt1
 
PDF
Freedomday2016 - Fique na caixinha, docker
Eustaquio Guimaraes mendesbsb
 
PDF
Workshop Microservices - Distribuindo os Microservices com Docker e Kubernetes
Rodrigo Cândido da Silva
 
PDF
Docker 101 e Ambientes Imutáveis
Wallison Marra
 
PDF
Docker, facilitando a vida do desenvolvimento
Sérgio Lima
 
PDF
Introdução ao Docker
Rafael Dutra
 
PDF
JavaDay2018 - Docker - Além do HelloWorld
Thiago Soares
 
PPTX
Containers com docker #CPRecife4
David Ruiz
 
Orquestrando Docker Containers: Machine, Swarm e Compose
Roberto Hashioka
 
Aulão de docker
Renato Lucena
 
Olá docker
Marcos Ellys
 
Primeiros passos com o Docker
WebSix
 
Docker - Tutorial for beginners
Rafael Chiavegatto
 
TDC 2016 Floripa - Workshop docker
Rafael Gomes
 
apresentação e introdução aos comandos básicos docker
Antonio Lobato
 
Docker: um linux container engine
Hudson Brendon
 
Oficina docker
Morvana Bonin
 
Docker e suas tecnologias
Cesar Augusto Nogueira
 
Docker e suas tecnologias por @cesarnog
Cesar Augusto Nogueira
 
Introdução-a-Docker-compactado.pdf
dadalt1
 
Freedomday2016 - Fique na caixinha, docker
Eustaquio Guimaraes mendesbsb
 
Workshop Microservices - Distribuindo os Microservices com Docker e Kubernetes
Rodrigo Cândido da Silva
 
Docker 101 e Ambientes Imutáveis
Wallison Marra
 
Docker, facilitando a vida do desenvolvimento
Sérgio Lima
 
Introdução ao Docker
Rafael Dutra
 
JavaDay2018 - Docker - Além do HelloWorld
Thiago Soares
 
Containers com docker #CPRecife4
David Ruiz
 
Anúncio

Introdução ao docker

  • 2. O que é? É uma plataforma aberta para desenvolvedores e administradores de sistemas para construir, entregar e rodar aplicações distribuidas
  • 3. 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.
  • 4. Composto: * Docker Engine * Docker Hub Docker Engine que é uma leve ferramenta de execução e empacotamento.
  • 5. Composto: Docker Hub, um serviço em nuvem responsável pelo compartilhamento de aplicações e automação de fluxos de trabalho. (Imagens)
  • 6. 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?”
  • 7. 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.
  • 8. 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.
  • 10. 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.
  • 11. 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.
  • 12. 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
  • 13. 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.
  • 14. 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"]
  • 15. 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.
  • 16. 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.
  • 17. 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.
  • 20. Instalação Windows  Requisitos Windows 10 Pro 64 bits Enterprise and Education (1511 November update, Build 10586 or later) Microsoft Hyper-V
  • 21. Instalação Windows 1 - Instalar o arquivo InstallDocker.msi 2 - E Inciar o Docker For Windows Configuração
  • 23. Escolha seu terminal favorito! 1 – Prompt 2 - Power shell 3 - Cheque a versão ‘docker --version’
  • 25. 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.
  • 26. 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