Upload
marcos-ellys
View
173
Download
0
Embed Size (px)
Citation preview
Marcos Ellys
marcosellys.github.io
/marcosellys
/marcosellys
Analista e desenvolvedor de Sistemas
Desenvolvedor na Brisanet TelecomunicaçõesBlogueiro 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/
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-worldA 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.
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
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.
‘