Skip to content

Latest commit

 

History

History
185 lines (111 loc) · 5.25 KB

lab-1.1-executar.md

File metadata and controls

185 lines (111 loc) · 5.25 KB

Lab 1.1 - Executar

Lab 1.1 - Objetivos

  • Buscar informações sobre o ambiente Docker
  • Obter imagens de registros externos
  • Manipular imagens do registro local
  • Executar containers localmente

Tarefas

1.1.1 - Informações do Ambiente local

Para buscarmos informações sobre o ambiente local, usa-se:

docker info

1.1.2 - Buscando Imagens dos Registries

Toda instalação do runtime Docker acompanha configuração dos Registries mais comuns. Podemos ver isso por meio do comando docker info.

Por padrão, o registry docker.io já vem configurado como podemos ver na imagem acima.

Para buscar novas imagens nos Registries configurados, usa-se:

docker search fedora

docker search ubuntu

Nesse caso, ele irá buscar as imagens do centos no Dockerhub (docker.io) que já vem pré-configurado com o Docker.

Você também pode filtrar pelo número de estrelas (stars) que um repo possui.

Para isso basta passar o parametro --filter

docker search centos --filter=stars=10

No cenário acima, só existirão resultados que tenham mais que 10 estrelas.

1.1.3 - Baixando Imagens dos Registries

Além de nome, imagens possuem tags (sufixo separado por ':') que podem identificar versões ou variações de uma imagem específica. Para baixar uma imagem para o storage local de imagens, usa-se:

docker pull centos:7

O comando acima é equivalente a:

docker pull docker.io/centos:7

INFO: Quando não especificamos qual registry queremos usar, o docker irá utilizar o que está configurado no arquivo /etc/sysconfig/docker. Quando instalado pela primeira vez, o padrão é o docker.io.

É possível também baixar imagens de outros registries quando especificamos isso na linha de comando:

No exemplo abaixo utilizaremos o registry oficial da Red Hat.

docker pull registry.access.redhat.com/rhel-atomic

Caso você encontre o erro abaixo:

Ele acontece porque o registry da Red Hat exige certificado SSL. Para resolver isso, instale o seguinte pacote:

yum install http://mirror.centos.org/centos/7/os/x86_64/Packages/python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm

Agora faça novamente o pull da imagem rhel-atomic:

docker pull registry.access.redhat.com/rhel-atomic

No exemplo acima, ele buscará a imagem no registry registry.access.redhat.com

1.1.4 - Listando Imagens Locais

Para verificar quais imagens estão disponíveis localmente, usa-se:

docker images

1.1.5 - Removendo Imagens Locais

Para remover as imagens, ou tags, do repositório local, usa-se:

docker rmi <ID/tag>

Vamos remover a imagem do rhel atomic baixada no lab anterior:

docker images | grep rhel-atomic

Agora que temos o ID da imagem, podemos apagá-la:

Caso a imagem já esteja sendo utilizada por um container. o Docker não irá executar essa ação e retornará um erro informando qual o id do container que está utilizando a imagem que desejamos apagar.

Para resolver, basta remover o container que está causando problemas para a gente.

docker rm <id do container>

1.1.6 - Executando Containers

A execução de um container significa processar os metadados da imagem e criar um ou mais processos a partir dos dados armazenados. Para tal, usa-se:

docker run -it centos:7 /bin/bash

No exemplo anterior você deve ter percebido que além de iniciar o container você entrou no isolamento. Para sair usa-se a sequência CTRL+P+Q. Para iniciar o container de forma detached, usa-se:

# docker run -itd centos:7 /bin/bash

Caso queira entrar em um container já em execução, para fazer attach no processo já em execução, usa-se:

# docker attach <nome/ID>

1.1.7 - Executando imagem do Wordpress

Uma das vantagens do uso de containers é a possibilidade de abstração da complexidade de implantação de um determinado serviço. Vamos rodar agora uma imagem do wordpress e ver o trabalho necessário para colocar esse CMS no ar.

docker run --rm -p 80:8080 wordpress

O parametro -p exporta a porta interna do container (80) para a nossa máquina na porta 8080. Esse parâmetro será explicado melhor nos próximos exercícios.

Agora podemos abrir nosso browser na página:

http://localhost:8080

nota: caso esteja usando uma VM local acesse a URL utilizando o endereço IP da sua VM. Execute o comando ip a s dentro do shel da VM para saber o IP da rede interna do VirtualBox.

Se estiver usando uma VM na nuvem, use seu ip público para acessar o serviço.