Você está na página 1de 27

Docker

Learning Shot 2 - Administrao e Operaes

Who am I?
Gilvan Silva

SysAdmin
DevOps
Mineiro
Galo Doido

Contato: gilvan.silva@concrete.com.br

Agenda
- Comandos Bsicos
- Criando nosso primeiro container
- Criando imagens Docker
- Guardando e buscando imagens do Docker Hub

Comandos gerais
Listando containers:
$ docker ps
Removendo um ou mais containers:
$ docker rm <id/name>
Buscando logs de um container:
$ docker logs <id/name>
Buscando informaes low-level de imagens e containers:
$ docker inspect <id/name>

Comandos gerais
Listando imagens:
$ docker images
Removendo uma ou mais imagens:
$ docker rmi <id/name>
Buildando imagen customizada de um container:
$ docker build <Dockerfile path>
Apresentando dados de consumo do container:
$ docker stats <id/name>

Entendendo a diferena
Container x Imagem
Todo container iniciado a partir de uma imagem, dessa forma
podemos concluir que nunca teremos uma imagem em
execuo.
Um container s pode ser iniciado a partir de uma nica
imagem, ou seja, caso deseje um comportamento diferente
ser necessrio customizar a imagem.

Entendendo a diferena Container x


Imagem
Fazendo um paralelo com o conceito de orientao a objeto, a
imagem a classe e o container o objeto, ou seja, a imagem a
abstrao da infraestrutura em um estado somente leitura, que
de onde ser instanciado o container.

Criando imagens com Dockerfile


Quando se utiliza Dockerfile para gerar uma imagem,
basicamente apresentado uma lista de instrues que sero
aplicadas em uma determinada imagem para que outra seja
gerada com base nessas modificaes.

Criando imagens com Dockerfile


$
$
$
$

mkdir mydockerbuild
cd mydockerbuild
touch Dockerfile
vim Dockerfile (abrir com qualquer editor)!

FROM docker/whalesay:latest
RUN apt-get -y update && apt-get install -y
fortunes
CMD /usr/games/fortune -a | cowsay

Criando imagens com Dockerfile


$ cat Dockerfile
FROM docker/whalesay:latest
RUN apt-get -y update && apt-get install -y
fortunes
CMD /usr/games/fortune -a | cowsay

Gerando a imagem
$ docker build -t docker-whale .

Sada:
Sending build context to Docker daemon XXX.X MB
......
Removing intermediate container a8e6faa88df3
Successfully built 7d9495d03763

Entendendo o build
FROM docker/whalesay:latest

FROM usado para informar qual imagem usada como base,


que nesse caso foi a whalesay:latest

Entendendo o build
RUN apt-get -y update && apt-get install -y fortunes

RUN usado para informar quais comandos sero executados


nesse ambiente para efetuar as mudanas necessrias na
infraestrutura do sistema. So como comandos executados no
shell do ambiente.

Entendendo o build
CMD /usr/games/fortune -a | cowsay

CMD usado informar qual comando ser executado por


padro, caso nenhum seja informado na inicializao de um
container a partir dessa imagem. No nosso caso colocamos o
comando para a chamada do aplicativo fortune.

Almost there!!!...
$ docker images

Run Forest, run !!!


$ docker run docker-whale

Criando sua conta no Docker Hub


https://hub.docker.com/

Pull, tag and push images


docker pull para fazer download das imagens;
docker tag para versionar as imagens quando modificadas;
docker push para enviar para o Docker Registry.
Entendendo informaes apresentadas (lembram do git?):

Pull docker images


As imagens dos containers do docker so armazenadas no
Docker Hub e podem ser baixadas atravs do comando docker
pull
$ docker pull ubuntu:16.04
No comando acima, realizamos o download da imagem do
ubuntu na tag 16:04

Modificando a imagem docker


Com a imagem base para criar o container, pode-se instalar
diversos aplicativos. Do modo mais simples, instalando pelo
bash do container, executando o comando docker run:
$ docker run -i -t ubuntu:16.04 /bin/bash
Assim ser iniciado o bash do container e neste ponto no tem
muito segredo, basta instalar os aplicativos.

Modificando a imagem docker


$ sudo apt-get update
$ sudo apt-get install -y python python-pip
$ exit
Atualizado o Ubuntu e instalado o Python, podemos salvar as
modificaes para uma nova imagem.

Commit da imagem docker


Para que essa alteraes sejam efetivadas em nosso container
(gerando assim uma nova imagem), devemos executar commit.
Sintaxe do comando docker commit:
- docker commit [OPES] CONTAINER [REPOSITORIO]
Para saber qual a identificao do container criado:
$ docker ps -l

Verificando resultado do commit


So necessrios os 4 primeiros dgitos do CONTAINER ID para
executar o commit.
$ docker commit CONTAINER ID <novo_nome>
Com o comando acima, foi criada uma nova imagem com o
<novo_nome> o contendo as alteraes que realizamos
anteriormente. Para conferir se tudo funcionou corretamente,
vamos executar o comando python --version em nosso novo
container.
$ docker run <novo_nome> python --version

Verificando resultado do commit


So necessrios os 4 primeiros dgitos do CONTAINER ID para
executar o commit.
$ docker commit <CONTAINER ID> <novo_nome>
$ docker commit 1349 pythonENV
Com o comando acima, foi criada uma nova imagem com o
<novo_nome> contendo as alteraes que realizamos
anteriormente. Conferindo se tudo funcionou:
$ docker run

pythonENV python --version

Versionando imagens com tag


Na criao ou atualizao de uma imagem recomendado
utilizar tags. A tag o controle de verso para a imagem. O
referenciamento a imagem pode ser pelo nome ou pelo ID:
$ docker tag pythonENV pythonENV:2.7.12
$ docker tag 1349 pythonENV:2.7.12

Pushing docker images


Enviando a imagem para o Docker Registry:

$ docker login
$ docker push <user>/<repo>:tag
$ docker push csgilvansilva/myapp:pythonENV

Ajudamos empresas a criar


produtos digitais de sucesso

Rio de Janeiro Rua So Jos, 90 cj. 2121


Centro (21) 2240-2030

www.concretesolutions.com.br

So Paulo - Rua Sanso Alves dos Santos, 433


4 andar - Brooklin - (11) 4119-0449

Você também pode gostar