SlideShare uma empresa Scribd logo
1 de 5
Baixar para ler offline
"Um container é um padrão de unidade de software que empacota código e todas as dependências de uma
aplicação fazendo que a mesma seja executada rapidamente de forma confiável de um ambiente
computacional para o outro." docker.com
É um software que utiliza um mecanismo de execução de containers como um processo.
Porque diferentemente de máquinas virtuais, o Docker consegue de forma extremamente rápida e leve
executar seus containers sem a necessidade da instalação completa de um sistema operacional. O docker
"empresta" todos os recursos, incluindo o Kernel para que seus containers possam ser utilizados.
1. Namespaces - Isolamento de processos
2. cgroups - Controla os recursos do sistema operacional
3. Sistema de Arquivos - OFS (Overlay File System)
Executar um container:
docker run -it ubuntu /bin/bash
Verificar containers em utilização:
docker ps
Aulão de Docker
O que são Containers?
O que é o Docker?
Por que devo utilizar o Docker?
Quais pontos chave para que o Docker funcione corretamente
Comandos básicos
Containers
Verificar todos os containers:
docker ps -a
Compartilhamento / Exposição de portas
docker run -p 8080:80 nginx
Executar um container em segundo plano (modo detached)
docker run -d -p 8080:80 nginx
Remover um container
docker rm <id ou nome do container> (-f se quiser forçar)
Remover um container após sair
docker run --rm -p 8080:80 nginx
Remover todos os containers (linux/mac/bash,etc)
docker rm $(docker ps -a -q) -f
Para acessar ou executar um comando em um container
docker exec -it nome-do-container <comando ou /bin/bash>
Listar imagens
docker images
Remover uma imagem
docker rmi <nome da imagem>
Remover todas as imagens
Imagens
docker rmi $(docker images -q) -f
É um arquivo declarativo que tem o objetivo de construir uma imagem através de outra imagem.
O Dockerfile possui toda a estrutura e comandos necessários que ações sejam executadas no processo de
"build", ou seja, no processo de construção de uma imagem.
FROM golang:1.14
WORKDIR /go/src/
COPY . .
RUN GOOS=linux go build -ldflags="-s -w"
EXPOSE 8081
ENTRYPOINT ["./main"]
Após a criação do arquivo Dockerfile, você poderá criar sua própria imagem utilizando o seguinte comando.
docker build -t <nome da imagem>:<versao da imagem> .
1. O ponto final sinaliza em qual diretório encontra-se o Dockerfile.
2. Caso a versão da imagem não seja informada, ela será nomeada automaticamente como "latest".
O Dockerhub é um repositório aonde você pode disponibilizar suas imagems, de forma pública ou privada.
Para que a publicação seja possível, você primeiramente você terá que realizar o login em sua conta
digitando:
Dockerfile
O que é o Dockerfile
Exemplo de um Dockerfile
Gerando build de uma imagem
Publicando imagem no Docker Hub
docker login
Realizado o login basta realizar o push de sua imagem:
docker push <nome da imagem>
O docker-compose é uma ferramenta cujo o objetivo é facilitar o processo de executar containers docker de
forma declarativa. Cada container é executado como um serviço.
O arquivo utilizado para que o docker-compose seja executado com sucesso chama-se por padrão docker-
compose.yaml.
Exemplo:
version: '3'
services:
nginx:
image: nginx
volumes:
- ./nginx:/usr/share/nginx/html/
ports:
- 8080:80
redis:
image: redis:alpine
expose:
- 6379
Se você verificar o exemplo acima, perceberá que teremos dois serviços a serem executados.
1. O primeiro chama-se nginx. Ele utilizará a imagem do nginx como base e fará um compartilhamento de
volume. Ou seja, a pasta local do computador será compartilhada com o container. Nesse caso, tudo que
existir na pasta nginx do computador, será automaticamente replicado no endereço: /usr/share/nginx/html/
do container. Também a porta 8080 será redirecionada para a porta 80 do container; isso significa que
quando acessarmos no computador: localhost:8080 automaticamente o docker fará o redirecionamento
da requisição para a porta 80 do container.
Docker-compose
O que é o docker-compose
2. O segundo serviço chama-se redis e nesse caso é extremamente simples. Ele utiliza o redis:alpine como
imagem base e expõe a porta 6379 do container. Isso significa que o container do nginx poderá se
comunicar na rede local criada pelo docker utilizando a porta 6379.
Para iniciar os serviços declarados no docker-compose.yml, basta executar:
docker-compose up
Ao executar esse comando, os serviços serão inicializados, porém, você perceberá que seu terminal ficará
bloqueado, uma vez que o processo está sendo executado. Para executar de forma desatachada, basta
informar o parâmetro "-d" no final da instrução.
docker-compose up -d
Para encerrar os serviços, basta executar:
docker-compose down
Caso queira ver de forma mais "organizada" somente os containers dos serviços sendo executados, basta
rodar:
docker-compose ps
E finalmente, caso queira acessar algum container, basta executar:
docker-compose -it nome-do-container /bin/bash ou o comando a ser executado
Comandos úteis para o docker-compose

Mais conteúdo relacionado

Mais procurados

Containers PostgreSQL com a Crunchy Container Suite
Containers PostgreSQL com a Crunchy Container SuiteContainers PostgreSQL com a Crunchy Container Suite
Containers PostgreSQL com a Crunchy Container SuiteRoberto Mello
 
Docker e suas tecnologias por @cesarnog
Docker e suas tecnologias por @cesarnogDocker e suas tecnologias por @cesarnog
Docker e suas tecnologias por @cesarnogCesar Augusto Nogueira
 
Docker - minicurso utfpr 2017
Docker -  minicurso utfpr 2017Docker -  minicurso utfpr 2017
Docker - minicurso utfpr 2017Fabio Janiszevski
 
Vagrant & Docker: carregue seus ambientes no bolso
Vagrant & Docker: carregue seus ambientes no bolsoVagrant & Docker: carregue seus ambientes no bolso
Vagrant & Docker: carregue seus ambientes no bolsoDiogo Lucas
 
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...Renato Groff
 
TDC 2014 SP - E o DeltaSpike ?
TDC 2014 SP - E o DeltaSpike ?TDC 2014 SP - E o DeltaSpike ?
TDC 2014 SP - E o DeltaSpike ?Rafael Benevides
 
CDI Extensions e DeltaSpike
CDI Extensions e DeltaSpikeCDI Extensions e DeltaSpike
CDI Extensions e DeltaSpikeRafael Benevides
 
Docker: uma visão geral e exemplos de uso
Docker: uma visão geral e exemplos de usoDocker: uma visão geral e exemplos de uso
Docker: uma visão geral e exemplos de usoTobias Sette
 
Apresentação Docker
Apresentação DockerApresentação Docker
Apresentação DockerAndré Justi
 
Alta disponibilidade com PostgreSQL
Alta disponibilidade com PostgreSQLAlta disponibilidade com PostgreSQL
Alta disponibilidade com PostgreSQLLeonardo Cezar
 
Programação Multiplataforma em Ambiente Web
Programação Multiplataforma em Ambiente WebProgramação Multiplataforma em Ambiente Web
Programação Multiplataforma em Ambiente WebIsrael Messias
 

Mais procurados (20)

Containers PostgreSQL com a Crunchy Container Suite
Containers PostgreSQL com a Crunchy Container SuiteContainers PostgreSQL com a Crunchy Container Suite
Containers PostgreSQL com a Crunchy Container Suite
 
Docker: uma visão geral
Docker: uma visão geralDocker: uma visão geral
Docker: uma visão geral
 
Docker e suas tecnologias por @cesarnog
Docker e suas tecnologias por @cesarnogDocker e suas tecnologias por @cesarnog
Docker e suas tecnologias por @cesarnog
 
Apresentacao docker
Apresentacao dockerApresentacao docker
Apresentacao docker
 
Docker compose
Docker composeDocker compose
Docker compose
 
Docker - minicurso utfpr 2017
Docker -  minicurso utfpr 2017Docker -  minicurso utfpr 2017
Docker - minicurso utfpr 2017
 
Oficina docker
Oficina dockerOficina docker
Oficina docker
 
Vagrant & Docker: carregue seus ambientes no bolso
Vagrant & Docker: carregue seus ambientes no bolsoVagrant & Docker: carregue seus ambientes no bolso
Vagrant & Docker: carregue seus ambientes no bolso
 
Docker
DockerDocker
Docker
 
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
 
Vamos falar de docker
Vamos falar de dockerVamos falar de docker
Vamos falar de docker
 
TDC 2014 SP - E o DeltaSpike ?
TDC 2014 SP - E o DeltaSpike ?TDC 2014 SP - E o DeltaSpike ?
TDC 2014 SP - E o DeltaSpike ?
 
CDI Extensions e DeltaSpike
CDI Extensions e DeltaSpikeCDI Extensions e DeltaSpike
CDI Extensions e DeltaSpike
 
Freedomday2016 - Fique na caixinha, docker
Freedomday2016 - Fique na caixinha, dockerFreedomday2016 - Fique na caixinha, docker
Freedomday2016 - Fique na caixinha, docker
 
Docker: uma visão geral e exemplos de uso
Docker: uma visão geral e exemplos de usoDocker: uma visão geral e exemplos de uso
Docker: uma visão geral e exemplos de uso
 
Apresentação Docker
Apresentação DockerApresentação Docker
Apresentação Docker
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao docker
 
Alta disponibilidade com PostgreSQL
Alta disponibilidade com PostgreSQLAlta disponibilidade com PostgreSQL
Alta disponibilidade com PostgreSQL
 
Introdução à plataforma Docker
Introdução à plataforma DockerIntrodução à plataforma Docker
Introdução à plataforma Docker
 
Programação Multiplataforma em Ambiente Web
Programação Multiplataforma em Ambiente WebProgramação Multiplataforma em Ambiente Web
Programação Multiplataforma em Ambiente Web
 

Semelhante a Aulão de docker

Introdução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfIntrodução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfdadalt1
 
Docker - Essa baleia vai te conquistar
Docker - Essa baleia vai te conquistarDocker - Essa baleia vai te conquistar
Docker - Essa baleia vai te conquistarVinícius Feitosa
 
Docker 101 e Ambientes Imutáveis
Docker 101 e Ambientes Imutáveis Docker 101 e Ambientes Imutáveis
Docker 101 e Ambientes Imutáveis Wallison Marra
 
Introdução ao Docker
Introdução ao DockerIntrodução ao Docker
Introdução ao DockerRafael Dutra
 
TDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop dockerTDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop dockerRafael Gomes
 
Docker Para Maiores - GDG Cabreúva
Docker Para Maiores - GDG CabreúvaDocker Para Maiores - GDG Cabreúva
Docker Para Maiores - GDG CabreúvaMatheus Fidelis
 
Treinamento Docker Básico
Treinamento Docker BásicoTreinamento Docker Básico
Treinamento Docker BásicoAndré Justi
 
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu DevelopersDesenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu DevelopersDextra Sistemas / Etec Itu
 
Primeiros passos com o Docker
Primeiros passos com o DockerPrimeiros passos com o Docker
Primeiros passos com o DockerWebSix
 
Docker - Tutorial for beginners
Docker - Tutorial for beginnersDocker - Tutorial for beginners
Docker - Tutorial for beginnersRafael Chiavegatto
 
Desenvolvendo e implantando aplicações PHP utilizando Docker
Desenvolvendo e implantando aplicações PHP utilizando DockerDesenvolvendo e implantando aplicações PHP utilizando Docker
Desenvolvendo e implantando aplicações PHP utilizando DockerBruno Ricardo Siqueira
 
JavaDay2018 - Docker - Além do HelloWorld
JavaDay2018 - Docker - Além do HelloWorldJavaDay2018 - Docker - Além do HelloWorld
JavaDay2018 - Docker - Além do HelloWorldThiago Soares
 

Semelhante a Aulão de docker (20)

Docker para iniciantes
Docker para iniciantesDocker para iniciantes
Docker para iniciantes
 
Docker e suas tecnologias
Docker e suas tecnologiasDocker e suas tecnologias
Docker e suas tecnologias
 
Introdução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfIntrodução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdf
 
Docker - Essa baleia vai te conquistar
Docker - Essa baleia vai te conquistarDocker - Essa baleia vai te conquistar
Docker - Essa baleia vai te conquistar
 
Docker 101 e Ambientes Imutáveis
Docker 101 e Ambientes Imutáveis Docker 101 e Ambientes Imutáveis
Docker 101 e Ambientes Imutáveis
 
Introdução ao Docker
Introdução ao DockerIntrodução ao Docker
Introdução ao Docker
 
TDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop dockerTDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop docker
 
Docker Para Maiores - GDG Cabreúva
Docker Para Maiores - GDG CabreúvaDocker Para Maiores - GDG Cabreúva
Docker Para Maiores - GDG Cabreúva
 
Usando Docker no desenvolvimento .NET
Usando Docker no desenvolvimento .NETUsando Docker no desenvolvimento .NET
Usando Docker no desenvolvimento .NET
 
Treinamento Docker Básico
Treinamento Docker BásicoTreinamento Docker Básico
Treinamento Docker Básico
 
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu DevelopersDesenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
 
Primeiros passos com o Docker
Primeiros passos com o DockerPrimeiros passos com o Docker
Primeiros passos com o Docker
 
Alagoas Dev Day
Alagoas Dev DayAlagoas Dev Day
Alagoas Dev Day
 
Docker - Tutorial for beginners
Docker - Tutorial for beginnersDocker - Tutorial for beginners
Docker - Tutorial for beginners
 
Docker
DockerDocker
Docker
 
Desenvolvendo e implantando aplicações PHP utilizando Docker
Desenvolvendo e implantando aplicações PHP utilizando DockerDesenvolvendo e implantando aplicações PHP utilizando Docker
Desenvolvendo e implantando aplicações PHP utilizando Docker
 
Docker para maiores
Docker para maioresDocker para maiores
Docker para maiores
 
JavaDay2018 - Docker - Além do HelloWorld
JavaDay2018 - Docker - Além do HelloWorldJavaDay2018 - Docker - Além do HelloWorld
JavaDay2018 - Docker - Além do HelloWorld
 
Iniciando com docker
Iniciando com dockerIniciando com docker
Iniciando com docker
 
Iniciando com docker
Iniciando com dockerIniciando com docker
Iniciando com docker
 

Mais de Renato Lucena

Php assíncrono com_react_php
Php assíncrono com_react_phpPhp assíncrono com_react_php
Php assíncrono com_react_phpRenato Lucena
 
Laravelcollectionsunraveled
LaravelcollectionsunraveledLaravelcollectionsunraveled
LaravelcollectionsunraveledRenato Lucena
 
Desconstruindo paulo freire thomas giulliano
Desconstruindo paulo freire   thomas giullianoDesconstruindo paulo freire   thomas giulliano
Desconstruindo paulo freire thomas giullianoRenato Lucena
 
8 motivos-para-usar-o-yii2
8 motivos-para-usar-o-yii28 motivos-para-usar-o-yii2
8 motivos-para-usar-o-yii2Renato Lucena
 
Estruturas blade-repeticao
Estruturas blade-repeticaoEstruturas blade-repeticao
Estruturas blade-repeticaoRenato Lucena
 
Revista programar 51
Revista programar 51Revista programar 51
Revista programar 51Renato Lucena
 
Apresentacao engenharia aup
Apresentacao engenharia aupApresentacao engenharia aup
Apresentacao engenharia aupRenato Lucena
 
Curiosidades bíblia
Curiosidades bíbliaCuriosidades bíblia
Curiosidades bíbliaRenato Lucena
 
Team viwer linux inicia ubuntu
Team viwer linux inicia ubuntuTeam viwer linux inicia ubuntu
Team viwer linux inicia ubuntuRenato Lucena
 

Mais de Renato Lucena (11)

Php assíncrono com_react_php
Php assíncrono com_react_phpPhp assíncrono com_react_php
Php assíncrono com_react_php
 
Crunchy containers
Crunchy containersCrunchy containers
Crunchy containers
 
Laravelcollectionsunraveled
LaravelcollectionsunraveledLaravelcollectionsunraveled
Laravelcollectionsunraveled
 
Ebook ui-design-v2
Ebook ui-design-v2Ebook ui-design-v2
Ebook ui-design-v2
 
Desconstruindo paulo freire thomas giulliano
Desconstruindo paulo freire   thomas giullianoDesconstruindo paulo freire   thomas giulliano
Desconstruindo paulo freire thomas giulliano
 
8 motivos-para-usar-o-yii2
8 motivos-para-usar-o-yii28 motivos-para-usar-o-yii2
8 motivos-para-usar-o-yii2
 
Estruturas blade-repeticao
Estruturas blade-repeticaoEstruturas blade-repeticao
Estruturas blade-repeticao
 
Revista programar 51
Revista programar 51Revista programar 51
Revista programar 51
 
Apresentacao engenharia aup
Apresentacao engenharia aupApresentacao engenharia aup
Apresentacao engenharia aup
 
Curiosidades bíblia
Curiosidades bíbliaCuriosidades bíblia
Curiosidades bíblia
 
Team viwer linux inicia ubuntu
Team viwer linux inicia ubuntuTeam viwer linux inicia ubuntu
Team viwer linux inicia ubuntu
 

Aulão de docker

  • 1. "Um container é um padrão de unidade de software que empacota código e todas as dependências de uma aplicação fazendo que a mesma seja executada rapidamente de forma confiável de um ambiente computacional para o outro." docker.com É um software que utiliza um mecanismo de execução de containers como um processo. Porque diferentemente de máquinas virtuais, o Docker consegue de forma extremamente rápida e leve executar seus containers sem a necessidade da instalação completa de um sistema operacional. O docker "empresta" todos os recursos, incluindo o Kernel para que seus containers possam ser utilizados. 1. Namespaces - Isolamento de processos 2. cgroups - Controla os recursos do sistema operacional 3. Sistema de Arquivos - OFS (Overlay File System) Executar um container: docker run -it ubuntu /bin/bash Verificar containers em utilização: docker ps Aulão de Docker O que são Containers? O que é o Docker? Por que devo utilizar o Docker? Quais pontos chave para que o Docker funcione corretamente Comandos básicos Containers
  • 2. Verificar todos os containers: docker ps -a Compartilhamento / Exposição de portas docker run -p 8080:80 nginx Executar um container em segundo plano (modo detached) docker run -d -p 8080:80 nginx Remover um container docker rm <id ou nome do container> (-f se quiser forçar) Remover um container após sair docker run --rm -p 8080:80 nginx Remover todos os containers (linux/mac/bash,etc) docker rm $(docker ps -a -q) -f Para acessar ou executar um comando em um container docker exec -it nome-do-container <comando ou /bin/bash> Listar imagens docker images Remover uma imagem docker rmi <nome da imagem> Remover todas as imagens Imagens
  • 3. docker rmi $(docker images -q) -f É um arquivo declarativo que tem o objetivo de construir uma imagem através de outra imagem. O Dockerfile possui toda a estrutura e comandos necessários que ações sejam executadas no processo de "build", ou seja, no processo de construção de uma imagem. FROM golang:1.14 WORKDIR /go/src/ COPY . . RUN GOOS=linux go build -ldflags="-s -w" EXPOSE 8081 ENTRYPOINT ["./main"] Após a criação do arquivo Dockerfile, você poderá criar sua própria imagem utilizando o seguinte comando. docker build -t <nome da imagem>:<versao da imagem> . 1. O ponto final sinaliza em qual diretório encontra-se o Dockerfile. 2. Caso a versão da imagem não seja informada, ela será nomeada automaticamente como "latest". O Dockerhub é um repositório aonde você pode disponibilizar suas imagems, de forma pública ou privada. Para que a publicação seja possível, você primeiramente você terá que realizar o login em sua conta digitando: Dockerfile O que é o Dockerfile Exemplo de um Dockerfile Gerando build de uma imagem Publicando imagem no Docker Hub
  • 4. docker login Realizado o login basta realizar o push de sua imagem: docker push <nome da imagem> O docker-compose é uma ferramenta cujo o objetivo é facilitar o processo de executar containers docker de forma declarativa. Cada container é executado como um serviço. O arquivo utilizado para que o docker-compose seja executado com sucesso chama-se por padrão docker- compose.yaml. Exemplo: version: '3' services: nginx: image: nginx volumes: - ./nginx:/usr/share/nginx/html/ ports: - 8080:80 redis: image: redis:alpine expose: - 6379 Se você verificar o exemplo acima, perceberá que teremos dois serviços a serem executados. 1. O primeiro chama-se nginx. Ele utilizará a imagem do nginx como base e fará um compartilhamento de volume. Ou seja, a pasta local do computador será compartilhada com o container. Nesse caso, tudo que existir na pasta nginx do computador, será automaticamente replicado no endereço: /usr/share/nginx/html/ do container. Também a porta 8080 será redirecionada para a porta 80 do container; isso significa que quando acessarmos no computador: localhost:8080 automaticamente o docker fará o redirecionamento da requisição para a porta 80 do container. Docker-compose O que é o docker-compose
  • 5. 2. O segundo serviço chama-se redis e nesse caso é extremamente simples. Ele utiliza o redis:alpine como imagem base e expõe a porta 6379 do container. Isso significa que o container do nginx poderá se comunicar na rede local criada pelo docker utilizando a porta 6379. Para iniciar os serviços declarados no docker-compose.yml, basta executar: docker-compose up Ao executar esse comando, os serviços serão inicializados, porém, você perceberá que seu terminal ficará bloqueado, uma vez que o processo está sendo executado. Para executar de forma desatachada, basta informar o parâmetro "-d" no final da instrução. docker-compose up -d Para encerrar os serviços, basta executar: docker-compose down Caso queira ver de forma mais "organizada" somente os containers dos serviços sendo executados, basta rodar: docker-compose ps E finalmente, caso queira acessar algum container, basta executar: docker-compose -it nome-do-container /bin/bash ou o comando a ser executado Comandos úteis para o docker-compose