- Buscar informações sobre o ambiente Docker
- Obter imagens de registros externos
- Manipular imagens do registro local
- Executar containers localmente
Para buscarmos informações sobre o ambiente local, usa-se:
docker info
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.
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
Para verificar quais imagens estão disponíveis localmente, usa-se:
docker images
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>
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>
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:
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.