Docker — 5 tópicos para iniciar o mais rápido possível
Tags: docker, development, tutorial, programming
Published: 2023-10-07 12:58:20


![](https://cdn-images-1.medium.com/max/2402/1*IXHTX3Zv51CfLv8-p3XC-w.png)

Hello dev!

Essa semana me peguei revendo alguns conceitos básicos para subir um container Docker em um cenário com python e etc etc… Tenho que confessar que precisei buscar em meus "cadernos virtuais" algumas colas para que relembrasse, ai me peguei pensando.
>  Porque eu não crio um post para deixar minha cola mais centralizada e disponível para outras pessoas?

Pois bem e foi isso que fiz! Então sem mais delongas, minha ideia é trazer fragmentos de conteúdos bem práticos e rápidos de como sair com a mão na massa. Ahh um detalhe apenas, não vou me focar em passo a passo de instalações de fato, apenas vou deixar alguns links de instalação pois o foco aqui é a pratica de fato, ok?

![](https://cdn-images-1.medium.com/max/2000/1*LjXTKg5aYa2-q9B-R3W5fg.gif)

### **Uma breve introdução sobre Docker**

O Docker é um gerenciador de Containers capaz de criar pequenos fragmentos com responsabilidades mais especificas, ele encapsula sua aplicação, SO e/ou quaisquer coisa que você queira nesse tal container tornando disponível para replicar em um ou vários lugares de maneira mais fácil e rápida, quebrando aquele velho ditado:
>  Na minha maquina funciona!

Na prática, como todo mundo diz voce faz uma receita de bolo e com isso não tem jeito da sua aplicação rodar diferente do que roda na produção ou no coleguinha da sua direita. Fechado?!

*Existe um post sobre docker muito interessante que vai mais fundo nos detalhes de funcionamento, vou deixar [aqui o link](https://medium.com/trainingcenter/docker-o-que-%C3%A9-docker-e-como-come%C3%A7ar-58e04bdcb043)*

![](https://cdn-images-1.medium.com/max/2000/1*SJryNEZi8mugN4guNayofw.png)

### Instalações

Como comentei na introdução, não vou me prender em muitos detalhes de como instalar e sim vou deixar alguns links complementares

[*Get Started Docker](https://docs.docker.com/engine/getstarted/step_one/)*

[Install Docker on Ubuntu 16.04](https://www.digitalocean.com/community/tutorials/como-instalar-e-usar-o-docker-no-ubuntu-16-04-pt)

## 1° Compreendendo conceitos

*Você precisa saber de algumas coisas antes de começar.*

Depois de baixado e iniciado Docker fique atento para que o ícone em seu SO não esteja carregando e sim fixo pois isso é o seu loading e nada ira funcionar se ele não terminar de carregar

![](https://cdn-images-1.medium.com/max/2000/1*6GYgaESpEd_xYn1UC0pVqA.gif)

Quando ele ficar fixo com os blocos em cima da baleia, ai esta tudo ok!

## 2° O que são imagens?

A imagem é um compilado de uma sequencia de configurações pré feitas com objetivo em rodar algo, por exemplo, temos imagem de ubuntu, mysql, redis, node até imagem de node rodando um sistema XYZ e por ai vai… Com base nas imagens começamos a trabalhar da maneira que desejamos.
>  Ok, e onde essas imagens?

Simples! Você pode criar imagens assim como usar imagens disponíveis de um lugar chamado [DockerHub](https://hub.docker.com/) (igualzinho ao Github, não tem mistério), posteriormente vou mostrar como enviar para lá também.

## 3° Hora do show! Inicializando o primeiro container

Acho que você já esta preparado! Então com seu Docker rodando, vamos abrir um terminal e começar com um simples

    docker run -it ubuntu bash

Esse comando irá procurar uma imagem com nome de ubuntu local e se caso não encontrar ele irá buscar no DockerHub para então baixar e rodar na sua maquina (lembrando que se ele não encontrar em nenhum dos dois lugares nada ira acontecer).

### Dicionário

**run **= Comando para inicializar

**it **= É a maneira que informamos para essa inicialização que queremos ter acesso ao terminal porem lá de dentro do container assim que ele subir

**ubuntu** = Nome da imagem do DockerHub nesse caso

**bash **= O Que queremos utilizar dentro da maquina assim que à acessarmos (Faz ligação com o -it)

*Detalhe complementar:** -it **pode ser escrito também como **-i -t***

Ao rodar o comando, termos a seguinte tela em nosso terminal

![](https://cdn-images-1.medium.com/max/2000/1*KKKyL3UmM-Iw80U-MdLJ5w.png)

Nada de muito diferente na verdade, aquele root@33… significa que não estamos mais dentro de nossa maquina "Mãe" e sim dentro do container, note que por exemplo você ao utilizar o comando

    ls

Teremos a apresentação de um novo esquema de pastas

![](https://cdn-images-1.medium.com/max/2000/1*_zQxsB-FfIaZEhq40xrzog.png)

Essas pastas não fazem conexão a sua maquina e sim ao container, **atenção a isso**, entenda que são coisas independentes.
>  Certo, e o que podemos fazer aqui?

Tudo! Pois essa é uma maquina nova, um ubuntu zeradinho. Claro que não temos arquivos nem nada… mas isso é apenas um detalhe, certo.

Você pode navegar nas pastas e executar comandos de terminal a vontade dentro de seu mais novo ubuntu.

## 4° Status dos containers

É fácil saber se você já tem algum container rodando ou parado em sua maquina, com o comando

    docker ps -a

Esqueci de falar, mas esse comando se roda fora de um container ou seja seguindo nosso fluxo desse post como eu disse anteriormente, seria na nossa "Mãe". Nesse caso vou manter o terminal dentro do container que iniciamos no passo 3 e vou abrir um novo terminal para demostrar o uso desse comando

![](https://cdn-images-1.medium.com/max/2086/1*3Z9clDCwgjKeEQwminmvvQ.png)

Veja que lindo! No terminal acima, podemos observar que temos um container com ID 33c6358dea3d (gerado automaticamente), imagem ubuntu, executando bash… Tem tudo! inclusive o **Status**, informando que esta ligado a 10 minutos.

Voltando aos comandos utilizados, vamos detalhar as coisas aqui:

**ps** = Comando para listagem de containers

**-a** = Significa que queremos listar todos os container que estejam **Rodando ou Não**, caso não coloque isso e o seu container esteja parado ele não ira listar… Eu tenho o costume de sempre colocar pois ai consigo ver se esta rodando ou não pela coluna de **Status**.
>  Como faço para parar a execução dele?

Simples, podemos no terminal fora do container executar o seguinte comando

    docker stop CODIGO_DO_CONTAINER_OU_NOME

Acredito que não preciso criar um detalhamento melhor do que o próprio comando acima já fala, certo? Você pode parar ele com o **ID**, no meu caso **33c6358dea3d** ou com o **name** **sad_gauss** que foi criado também automaticamente na hora que subi o container.

Seguindo, eu vou fazer essa execução e logo rodar um docker ps -a novamente para ver o que acontece

![](https://cdn-images-1.medium.com/max/2106/1*pSXHxKQs05SpqYPfg5hz8w.png)

Veja que o status foi para Exited, isso que dizer que ela não esta mais rodando!
>  E se eu quiser subir ela novamente?

    docker start CODIGO_DO_CONTAINER_OU_NOME

Não tem mais fácil! Vou executar e rodar novamente um docker ps -a

![](https://cdn-images-1.medium.com/max/2108/1*5SB_nZ9UV6BfVvo_XM4meA.png)

E la esta o nosso menino, forte e feliz de pé novamente!

## 5° Removendo containers

Uma vez que você começar a rodar os comandos docker run X Y Z… você vai começar a ter varias container rodando ou não e consequentemente ocupando espaço da sua maquina. Para gerenciar melhor isso, você pode executar o comando

    docker rm CODIGO_DO_CONTAINER_OU_NOME

Para remover um container, só lembre de ter parado ela primeiramente com

    docker stop CODIGO_DO_CONTAINER_OU_NOME

Depois disso use o bom e velho docker ps -a para ver se o container realmente foi excluido.

Pessoal eu não tinha ideia de me esticar tanto assim e para falar a verdade não cheguei nem na metade do conteúdo que pretendia postar hoje, kkkkkk

Mas enfim, tentei ser o mais prático possível e como esse foi o meu primeiro post no medium, espero que gostem! Minha ideia é continuar esse post em mais alguns para chegar onde eu quero chegar que seria o ABC do docker prático.

Obrigado pela leitura e até uma próxima!

![](https://cdn-images-1.medium.com/max/2000/1*uh_VhsT4YXfL05SWE1hjow.gif)