Para conseguirmos brincar um pouco com os comandos do docker, temos duas opções:
- Fazer a instalação do docker em seu computador
- Utilizar Play With Docker, que é um playground interativo online para brincar e aplicar os comandos que veremos aqui! (Entrar no link e clicar em ADD NEW INSTANCE
Para iniciar nossa exploração, vamos checar se o docker está okay, utilizando o comando: docker version
O docker é uma implementação de virtualização de containers que vem conquistando cada vez mais espaço devido à computação em nuvem e um container é uma instância de uma Imagem em execução naquele momento.
Imagens
A imagem é como se fosse uma receita de bolo, uma série de instruções que o Docker seguirá para criar um container, que irá conter as instruções da imagem, do hello-world.
Depois de buscar a receita do bolo, o container é criado e executado, e isso tudo pelo nosso comando docker run hello-world.
Há milhares de imagens disponíveis para executarmos a nossa aplicação, elas ficam disponíveis no Docker Hub.
Também podemos apenas baixar nossa imagem, sem executar nada, utilizando o comando docker pull hello-world
.
Há milhares de imagens disponíveis para executarmos a nossa aplicação, elas ficam disponíveis no Docker Hub.
Exemplo a imagem do meu repositório: docker pull aliniribeiroo/mvcad
Aqui o Docker baixou nossa imagem. Percebam que uma imagem é composta de várias camadas, por esse motivo teve que fazer vários Downloads/Pull
Listando imagens
Para listar todas as imagens podemos usar o comando: docker images
O nome da imagem é exibido na coluna REPOSITORY, cada imagem tem um identificador único que é exibido na coluna IMAGE ID. A coluna TAG indica a “versão” da imagem.
O latest quer dizer que é a última “versão” da imagem (a mais recente).
Executando Containers
Para executar um container podemos usar o comando: docker run --name mvcad -p 5000:5000 <nome da imagem>
- A tag “– –name” indica o nome que o seu container terá;
- A tag “-p 5000:5000” é o bind de portas que será realizado entre sua-maquina:container, ou seja, a porta 5000 da minha máquina apontará para a porta 5000 do meu container. Você encontra mais detalhes na doc do docker.
Listando Containers
Para listar todos os containers que estão em execução, podemos usar o comando: docker ps
Aqui temos informações sobre os containers em execução: ID, imagem base, comando inicial, há quanto tempo foi criado, status, quais portas estão disponíveis e/ou mapeadas para acesso e o nome do mesmo.
Quando não especificamos um nome ao iniciá-lo, será gerado um nome aleatoriamente. (Por isso usamos o comando --name
quando rodamos o container anteriormente)
Para listar todos os containers que não estão em execução, podemos usar o comando: docker ps -a
Depois de criado, um container pode ser iniciado e parado com os comandos:
docker start <nome container>
docker stop <nome container>
Removendo Imagens e Containers
- Para remover um container, podemos usar o comando:
docker rm <nome ou id do container>
- Para remover uma imagem, podemos usar o comando:
docker rmi <nome ou id da imagem>
Dicas:
- Podemos apenas utilizar os três primeiros números dos ids de uma imagem ou container.
Exemplo: Container com o Nome mvcad e o id ef89121b54fc, podemos utilizar o comando:docker <ação> ef8
- Para forçar a exclusão de uma imagem ou container, podemos utilizar a tag -f no comando:
docker rmi -f 8ef
- Para remover uma imagem, não pode haver nenhum container utilizando a mesma.
Criando Imagens
Uma imagem pode ser criada a partir de um arquivo de definição chamado de Dockerfile, nesse arquivo usamos algumas diretivas para declarar o que teremos na nossa imagem.
Lembra da nossa receita de bolo? é no Dockerfile que ela está escrita!
Depois de criar o arquivo Dockerfile, podemos construir nossa imagem com o comando:
docker build -t <nome da imagem> .
- “-t” é um parâmetro para informar que a imagem pertence ao meu usuário
- ”.” Significa o diretório em que você está, pois executamos o comando docker build dentro da pasta onde o Dockerfile se encontra.
Para enviar uma imagem para o dockerhub, podemos construir nossa imagem com o comando: docker push <nome da imagem>
Espero que estes comandos sejam uteís para consulta para a alini e todos vocês do futuro!
Grande Abraço, A.R. 🙂