O documento introduz o Docker, definindo-o como uma tecnologia de código aberto que permite empacotar software em unidades padronizadas chamadas contêineres para implantação rápida em qualquer ambiente. Ele também lista várias vantagens do Docker como portabilidade, versionamento, reutilização de componentes e orquestração de ambientes. Por fim, fornece uma abordagem prática para executar um container Docker.
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/
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.
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
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.
‘