SlideShare uma empresa Scribd logo
1 de 39
Baixar para ler offline
Olá Docker
Marcos Ellys
marcosellys.github.io
/marcosellys
/marcosellys
marcos.ellys@gmail.com
Analista e desenvolvedor de Sistemas
Desenvolvedor na Brisanet Telecomunicações
Blogueiro e evangelista de boas práticas
Formado em Análise e Desenvolvimento de Sistemas
O que é Docker?
O Docker é uma tecnologia de código aberto que
permite criar, executar, testar e implantar aplicações
distribuídas dentro de contêineres de software. Ele
permite que você empacote um software em uma
unidade padronizada, contendo todo o necessário
para a execução: código, runtime, ferramentas do
sistema, bibliotecas do sistema, etc.
Docker permite que você implante aplicações
rapidamente, de modo confiável e estável, em
qualquer ambiente.
https://aws.amazon.com/pt/docker/
Quem usa
Empresas que usam Docker para desenvolver software
Ecossistema
Containers x VMS
Fonte: https://www.docker.com/what-docker#/VM
Docker não é uma Máquina Virtual
Docker é um Ambiente Virtual
Vantagens
• Portabilidade
Vantagens
• Portabilidade
• Versionamento
Vantagens
• Portabilidade
• Versionamento
• Reutilização de componentes
Vantagens
• Portabilidade
• Versionamento
• Reutilização de componentes
• CLI e API
Vantagens
• Portabilidade
• Versionamento
• Reutilização de componentes
• CLI e API
• Automatização de Implantação
Vantagens
• Portabilidade
• Versionamento
• Reutilização de componentes
• CLI e API
• Automatização de Implantação
• Gerenciamento
Vantagens
• Portabilidade
• Versionamento
• Reutilização de componentes
• CLI e API
• Automatização de Implantação
• Gerenciamento
• Performance
Vantagens
• Portabilidade
• Versionamento
• Reutilização de componentes
• CLI e API
• Automatização de Implantação
• Gerenciamento
• Performance
• Orquestração de ambientes
Vantagens
• Portabilidade
• Versionamento
• Reutilização de componentes
• CLI e API
• Automatização de Implantação
• Gerenciamento
• Performance
• Orquestração de ambientes
• Cluster em nuvem (swarm)
Imagens Docker
As imagens são templates para criação de
containers.
São estáticas e podem ser encontradas no
Docker Hub ou podem ser criadas a partir de
uma imagem base com Dockerfile ou com
Commit.
Docker Hub
Docker Hub é um serviço de registro baseado
em nuvem que permite que você vincule
repositórios de código, construa imagens,
teste-as e armazene.
Ele fornece um recurso centralizado para
descoberta de imagens, distribuição,
gerenciamento de mudanças, colaboração de
usuários e equipes e automação de fluxo de
trabalho em toda a linha de desenvolvimento.
https://hub.docker.com/
Containers
O Container é uma instância de uma imagem.
Os containers virtualizam o SO, dividindo-o em
compartimentos virtualizados para executar
aplicações em container.
Instalando Docker
Existe um artigo em português que cobre toda a
parte de instalação no Ubuntu, sendo possível
também instalar em outras distribuições.
Acesse https://goo.gl/6YGFl8
Sintaxe Docker
$ docker <command> [params] <image>:[tag]
Command: Ação executada.
Params: Configurações do comando.
Image: Imagem base usada.
Tag: Versão da imagem.
Como usar Docker sem sudo
$ sudo groupadd docker
Adiciona docker a um grupo.
$ sudo gpasswd -a ${USER} docker
Adiciona usuário da sessão ao grupo docker.
$ sudo service docker restart
Reinicia o Docker.
Caso necessário reinicie o sistema
Hello World
$ docker run hello-world
A partir do comando run um container vai ser
criado e executado com base na imagem hello-
world, caso ainda não tenha a imagem Docker
vai efetuar o download da imagem no Docker
Hub e só então executar criando um container.
Comandos
Listando comandos
$ docker -h
Lista todos os comandos disponíveis.
Usage: docker [OPTIONS] COMMAND [arg...]
docker [ --help | -v | --version ]
A self-sufficient runtime for containers.
Options:
--config=~/.docker Location of client config files
-D, --debug Enable debug mode
-H, --host=[] Daemon socket(s) to connect to
-h, --help Print usage
-l, --log-level=info Set the logging level
--tls Use TLS; implied by --tlsverify
--tlscacert=~/.docker/ca.pem Trust certs signed only by this CA
--tlscert=~/.docker/cert.pem Path to TLS certificate file
--tlskey=~/.docker/key.pem Path to TLS key file
--tlsverify Use TLS and verify the remote
-v, --version Print version information and quit
● attach Attach to a running container
●
build Build an image from a Dockerfile
● commit Create a new image from a container's changes
●
cp Copy files/folders between a container and the local filesystem
● create Create a new container
●
diff Inspect changes on a container's filesystem
● events Get real time events from the server
● exec Run a command in a running container
● export Export a container's filesystem as a tar archive
● history Show the history of an image
● images List images
●
import Import the contents from a tarball to create a filesystem image
● info Display system-wide information
●
inspect Return low-level information on a container, image or task
●
kill Kill one or more running containers
●
load Load an image from a tar archive or STDIN
●
login Log in to a Docker registry.
● logout Log out from a Docker registry.
●
logs Fetch the logs of a container
●
network Manage Docker networks
●
node Manage Docker Swarm nodes
●
pause Pause all processes within one or more containers
●
port List port mappings or a specific mapping for the container
●
ps List containers
●
pull Pull an image or a repository from a registry
●
push Push an image or a repository to a registry
●
rename Rename a container
●
restart Restart a container
●
rm Remove one or more containers
●
rmi Remove one or more images
●
run Run a command in a new container
●
save Save one or more images to a tar archive (streamed to STDOUT by default)
●
search Search the Docker Hub for images
●
service Manage Docker services
●
start Start one or more stopped containers
●
stats Display a live stream of container(s) resource usage statistics
●
stop Stop one or more running containers
●
swarm Manage Docker Swarm
●
tag Tag an image into a repository
●
top Display the running processes of a container
●
unpause Unpause all processes within one or more containers
●
update Update configuration of one or more containers
●
version Show the Docker version information
●
volume Manage Docker volumes
●
wait Block until a container stops, then print its exit code
Abordagem prática
$ docker run -i -p 3000:3000 grafana/grafana
Próximos passos
Dockerfile
$ docker build -t="marcos/hello"
Construa suas próprias imagens
Imagens são criadas por Dockerfile
ou por commit e podem ser
armazenadas no Docker Hub.
Imagens podem ser exportadas e
importadas também.
Docker Compose
O Composer é uma ferramenta para definir e
executar aplicações multicontainers. Com o
Compose você usa um arquivo para configurar
os serviços da aplicação. Em seguida, usando
um único comando, você cria e inicia
todos os serviços.
Docker Swarm
É uma ferramenta nativa que permite a criação
de clusters, podemos fazer com que diversos
hosts de Docker estejam dentro do mesmo
pool de recursos, facilitando assim o deploy de
containers. É possível por exemplo criar um
container sem necessariamente
saber em qual host ele está, pois
o Swarm disponibiliza uma
API de integração, onde é
possível realizar atividades
administrativas de um container.
‘
OBRIGADO
@marcosellys

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Treinamento Docker Básico
Treinamento Docker BásicoTreinamento Docker Básico
Treinamento Docker Básico
 
Docker - Básico
Docker - BásicoDocker - Básico
Docker - Básico
 
O que é Docker?
O que é Docker?O que é Docker?
O que é Docker?
 
Apresentação Docker
Apresentação DockerApresentação Docker
Apresentação Docker
 
Docker compose
Docker composeDocker compose
Docker compose
 
Docker
DockerDocker
Docker
 
Apresentacao docker
Apresentacao dockerApresentacao docker
Apresentacao docker
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao docker
 
Freedomday2016 - Fique na caixinha, docker
Freedomday2016 - Fique na caixinha, dockerFreedomday2016 - Fique na caixinha, docker
Freedomday2016 - Fique na caixinha, docker
 
Introdução à plataforma Docker
Introdução à plataforma DockerIntrodução à plataforma Docker
Introdução à plataforma Docker
 
O que é docker?
O que é docker?O que é docker?
O que é docker?
 
São paulo docker meetup #2
São paulo docker meetup #2São paulo docker meetup #2
São paulo docker meetup #2
 
Docker para iniciantes
Docker para iniciantesDocker para iniciantes
Docker para iniciantes
 
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
 
Docker, facilitando a vida do desenvolvimento
Docker, facilitando a vida do desenvolvimentoDocker, facilitando a vida do desenvolvimento
Docker, facilitando a vida do desenvolvimento
 
Bem vindo ao Docker
Bem vindo ao DockerBem vindo ao Docker
Bem vindo ao Docker
 
Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes	Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes
 
Primeiros passos com o Docker
Primeiros passos com o DockerPrimeiros passos com o Docker
Primeiros passos com o Docker
 
Docker na vida real
Docker na vida realDocker na vida real
Docker na vida real
 

Semelhante a O que é Docker

Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao dockerBenicio Ávila
 
Transportando as aplicações entre vários ambientes com Docker
Transportando as aplicações entre vários ambientes com DockerTransportando as aplicações entre vários ambientes com Docker
Transportando as aplicações entre vários ambientes com DockerAécio Pires
 
Introdução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfIntrodução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfdadalt1
 
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
 
Workshop Microservices - Distribuindo os Microservices com Docker e Kubernetes
Workshop Microservices - Distribuindo os Microservices com Docker e KubernetesWorkshop Microservices - Distribuindo os Microservices com Docker e Kubernetes
Workshop Microservices - Distribuindo os Microservices com Docker e KubernetesRodrigo Cândido da Silva
 
TDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop dockerTDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop dockerRafael Gomes
 
Padrōes, Especificações, Runtimes: construindo containers melhores
Padrōes, Especificações, Runtimes: construindo containers melhoresPadrōes, Especificações, Runtimes: construindo containers melhores
Padrōes, Especificações, Runtimes: construindo containers melhoresCarlos Andre Fernandes
 
Containers em produção!
Containers em produção!Containers em produção!
Containers em produção!Evandro Couto
 
Source-to-container no mundo real
Source-to-container no mundo realSource-to-container no mundo real
Source-to-container no mundo realEvandro Silvestre
 
DevOpsDays - Apresentação
DevOpsDays - ApresentaçãoDevOpsDays - Apresentação
DevOpsDays - ApresentaçãoJonathan Baraldi
 
Docker: Uso no dia a dia de desenvolvimento
Docker: Uso no dia a dia de desenvolvimentoDocker: Uso no dia a dia de desenvolvimento
Docker: Uso no dia a dia de desenvolvimentoMarcela Carvalho
 
Re pensando-virtualização-através-linux containers
Re pensando-virtualização-através-linux containersRe pensando-virtualização-através-linux containers
Re pensando-virtualização-através-linux containersFrancisco Gonçalves
 
Usp codelabs (docker)
Usp codelabs (docker)Usp codelabs (docker)
Usp codelabs (docker)TechCobli
 

Semelhante a O que é Docker (20)

Docker e suas tecnologias
Docker e suas tecnologiasDocker e suas tecnologias
Docker e suas tecnologias
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao docker
 
Docker meetup
Docker meetupDocker meetup
Docker meetup
 
Transportando as aplicações entre vários ambientes com Docker
Transportando as aplicações entre vários ambientes com DockerTransportando as aplicações entre vários ambientes com Docker
Transportando as aplicações entre vários ambientes com Docker
 
Introdução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfIntrodução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdf
 
Usando Docker no desenvolvimento .NET
Usando Docker no desenvolvimento .NETUsando Docker no desenvolvimento .NET
Usando Docker no desenvolvimento .NET
 
Aulão de docker
Aulão de dockerAulão de docker
Aulão de docker
 
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
 
Workshop Microservices - Distribuindo os Microservices com Docker e Kubernetes
Workshop Microservices - Distribuindo os Microservices com Docker e KubernetesWorkshop Microservices - Distribuindo os Microservices com Docker e Kubernetes
Workshop Microservices - Distribuindo os Microservices com Docker e Kubernetes
 
TDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop dockerTDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop docker
 
Padrōes, Especificações, Runtimes: construindo containers melhores
Padrōes, Especificações, Runtimes: construindo containers melhoresPadrōes, Especificações, Runtimes: construindo containers melhores
Padrōes, Especificações, Runtimes: construindo containers melhores
 
Docker
DockerDocker
Docker
 
Containers em produção!
Containers em produção!Containers em produção!
Containers em produção!
 
Iniciando com docker
Iniciando com dockerIniciando com docker
Iniciando com docker
 
Source-to-container no mundo real
Source-to-container no mundo realSource-to-container no mundo real
Source-to-container no mundo real
 
DevOpsDays - Apresentação
DevOpsDays - ApresentaçãoDevOpsDays - Apresentação
DevOpsDays - Apresentação
 
Docker: Uso no dia a dia de desenvolvimento
Docker: Uso no dia a dia de desenvolvimentoDocker: Uso no dia a dia de desenvolvimento
Docker: Uso no dia a dia de desenvolvimento
 
Re pensando-virtualização-através-linux containers
Re pensando-virtualização-através-linux containersRe pensando-virtualização-através-linux containers
Re pensando-virtualização-através-linux containers
 
Alagoas Dev Day
Alagoas Dev DayAlagoas Dev Day
Alagoas Dev Day
 
Usp codelabs (docker)
Usp codelabs (docker)Usp codelabs (docker)
Usp codelabs (docker)
 

O que é Docker

  • 2. Marcos Ellys marcosellys.github.io /marcosellys /marcosellys marcos.ellys@gmail.com Analista e desenvolvedor de Sistemas Desenvolvedor na Brisanet Telecomunicações Blogueiro e evangelista de boas práticas Formado em Análise e Desenvolvimento de Sistemas
  • 3.
  • 4.
  • 5. O que é Docker? O Docker é uma tecnologia de código aberto que permite criar, executar, testar e implantar aplicações distribuídas dentro de contêineres de software. Ele permite que você empacote um software em uma unidade padronizada, contendo todo o necessário para a execução: código, runtime, ferramentas do sistema, bibliotecas do sistema, etc. Docker permite que você implante aplicações rapidamente, de modo confiável e estável, em qualquer ambiente. https://aws.amazon.com/pt/docker/
  • 6. Quem usa Empresas que usam Docker para desenvolver software
  • 8. Containers x VMS Fonte: https://www.docker.com/what-docker#/VM
  • 9. Docker não é uma Máquina Virtual Docker é um Ambiente Virtual
  • 12. Vantagens • Portabilidade • Versionamento • Reutilização de componentes
  • 13. Vantagens • Portabilidade • Versionamento • Reutilização de componentes • CLI e API
  • 14. Vantagens • Portabilidade • Versionamento • Reutilização de componentes • CLI e API • Automatização de Implantação
  • 15. Vantagens • Portabilidade • Versionamento • Reutilização de componentes • CLI e API • Automatização de Implantação • Gerenciamento
  • 16. Vantagens • Portabilidade • Versionamento • Reutilização de componentes • CLI e API • Automatização de Implantação • Gerenciamento • Performance
  • 17. Vantagens • Portabilidade • Versionamento • Reutilização de componentes • CLI e API • Automatização de Implantação • Gerenciamento • Performance • Orquestração de ambientes
  • 18. Vantagens • Portabilidade • Versionamento • Reutilização de componentes • CLI e API • Automatização de Implantação • Gerenciamento • Performance • Orquestração de ambientes • Cluster em nuvem (swarm)
  • 19. Imagens Docker As imagens são templates para criação de containers. São estáticas e podem ser encontradas no Docker Hub ou podem ser criadas a partir de uma imagem base com Dockerfile ou com Commit.
  • 20. Docker Hub Docker Hub é um serviço de registro baseado em nuvem que permite que você vincule repositórios de código, construa imagens, teste-as e armazene. Ele fornece um recurso centralizado para descoberta de imagens, distribuição, gerenciamento de mudanças, colaboração de usuários e equipes e automação de fluxo de trabalho em toda a linha de desenvolvimento. https://hub.docker.com/
  • 21. Containers O Container é uma instância de uma imagem. Os containers virtualizam o SO, dividindo-o em compartimentos virtualizados para executar aplicações em container.
  • 22. Instalando Docker Existe um artigo em português que cobre toda a parte de instalação no Ubuntu, sendo possível também instalar em outras distribuições. Acesse https://goo.gl/6YGFl8
  • 23. Sintaxe Docker $ docker <command> [params] <image>:[tag] Command: Ação executada. Params: Configurações do comando. Image: Imagem base usada. Tag: Versão da imagem.
  • 24. Como usar Docker sem sudo $ sudo groupadd docker Adiciona docker a um grupo. $ sudo gpasswd -a ${USER} docker Adiciona usuário da sessão ao grupo docker. $ sudo service docker restart Reinicia o Docker. Caso necessário reinicie o sistema
  • 25. Hello World $ docker run hello-world A partir do comando run um container vai ser criado e executado com base na imagem hello- world, caso ainda não tenha a imagem Docker vai efetuar o download da imagem no Docker Hub e só então executar criando um container.
  • 27. Listando comandos $ docker -h Lista todos os comandos disponíveis.
  • 28. Usage: docker [OPTIONS] COMMAND [arg...] docker [ --help | -v | --version ] A self-sufficient runtime for containers. Options: --config=~/.docker Location of client config files -D, --debug Enable debug mode -H, --host=[] Daemon socket(s) to connect to -h, --help Print usage -l, --log-level=info Set the logging level --tls Use TLS; implied by --tlsverify --tlscacert=~/.docker/ca.pem Trust certs signed only by this CA --tlscert=~/.docker/cert.pem Path to TLS certificate file --tlskey=~/.docker/key.pem Path to TLS key file --tlsverify Use TLS and verify the remote -v, --version Print version information and quit
  • 29. ● attach Attach to a running container ● build Build an image from a Dockerfile ● commit Create a new image from a container's changes ● cp Copy files/folders between a container and the local filesystem ● create Create a new container ● diff Inspect changes on a container's filesystem ● events Get real time events from the server ● exec Run a command in a running container ● export Export a container's filesystem as a tar archive ● history Show the history of an image ● images List images ● import Import the contents from a tarball to create a filesystem image ● info Display system-wide information ● inspect Return low-level information on a container, image or task ● kill Kill one or more running containers ● load Load an image from a tar archive or STDIN ● login Log in to a Docker registry. ● logout Log out from a Docker registry. ● logs Fetch the logs of a container ● network Manage Docker networks ● node Manage Docker Swarm nodes ● pause Pause all processes within one or more containers ● port List port mappings or a specific mapping for the container ● ps List containers ● pull Pull an image or a repository from a registry ● push Push an image or a repository to a registry ● rename Rename a container ● restart Restart a container ● rm Remove one or more containers ● rmi Remove one or more images ● run Run a command in a new container ● save Save one or more images to a tar archive (streamed to STDOUT by default) ● search Search the Docker Hub for images ● service Manage Docker services ● start Start one or more stopped containers ● stats Display a live stream of container(s) resource usage statistics ● stop Stop one or more running containers ● swarm Manage Docker Swarm ● tag Tag an image into a repository ● top Display the running processes of a container ● unpause Unpause all processes within one or more containers ● update Update configuration of one or more containers ● version Show the Docker version information ● volume Manage Docker volumes ● wait Block until a container stops, then print its exit code
  • 30. Abordagem prática $ docker run -i -p 3000:3000 grafana/grafana
  • 31.
  • 32.
  • 34.
  • 35. Dockerfile $ docker build -t="marcos/hello"
  • 36. Construa suas próprias imagens Imagens são criadas por Dockerfile ou por commit e podem ser armazenadas no Docker Hub. Imagens podem ser exportadas e importadas também.
  • 37. Docker Compose O Composer é uma ferramenta para definir e executar aplicações multicontainers. Com o Compose você usa um arquivo para configurar os serviços da aplicação. Em seguida, usando um único comando, você cria e inicia todos os serviços.
  • 38. Docker Swarm É uma ferramenta nativa que permite a criação de clusters, podemos fazer com que diversos hosts de Docker estejam dentro do mesmo pool de recursos, facilitando assim o deploy de containers. É possível por exemplo criar um container sem necessariamente saber em qual host ele está, pois o Swarm disponibiliza uma API de integração, onde é possível realizar atividades administrativas de um container. ‘