Docker o que é , e como funciona?

Olá! Neste artigo vamos abordar os seguintes tópicos:

  • O que é docker e quais suas principais estruturas?

  • Comandos básicos.

  • DockerFile. Para que serve e como funciona.

  • Docker Hub. O que é e como utiliza-lo

  • Deploy docker. passo a passo

  • Maquína Pessoal

  • O que é Docker? E quais suas principais estruturas?
  • Docker é uma ferramenta de virtualização mas não como por exemplo o virtualbox. Docker é uma ferramenta de virtualização que cria containers no software hospedeiro para servir aplicações, ou seja o sistema e o docker compartilham o kernel e o docker roda aparte de forma totalmente isolada, muito confuso não é? pois não é. Grave apenas como uma ferramenta para resolver diversos problemas isso já será de grande tamanho por enquanto, neste artigo abordaremos apenas como usar o docker para servir aplicações em diferentes ecossitemas.

    Agora vamos a parte técnica, do que é composto o docker?:

    O docker é composto de containers, imagens, docker engine, docker cli e api do docker. Mais abaixo explico melhor cada parte.

    Vamos começar pelo mais complexo docker engine:

    Docker engine é o "coração" da ferramenta, roda em segundo plano e cria/executa os containers.

    Docker cli, é a parte que nós programadores usamos para comunicar com o docker, aqui ficam os comandos do terminal.

    Api docker, é o que conecta a linha de comando com o processo na maquina.

    Imagens, imagens são tudo que há de relevante para que o docker possa funcionar poderiamos chamar de configurações do container mas atenção, o dockerFile já é isso. Grave como um amontuado de informações e dockerFile como as configurações em si.

    Container, é uma instância das imagens em outras palavras é o que roda no sistema hospedeiro.

  • comandos básicos:

    docker ps

    comando que serve para listar todos os docker ativos, será muito útil.

    docker run

    cria um container e coloca para rodar.

    docker stop

    para o container.

    docker build

    cria uma imagem

    docker pull/push

    baixa/envia imagens para o docker hub

    docker logs

    mostra os logs do container

Agora vamos a prática:
Precisamos setar as informações para que a imagem seja criada e o container respectivamente.
dockerFile como explicado brevemente antes, são as configurações de tudo que precisamos, logo vamos fazer essas tais configurações.
configurações relevantes:
sobre qual tipo de container vamos gerar <= para python rodando no linux
configurações de ambiente, <= virtualenv
onde fica nossa aplicação propiamente dita <= o django em si
scripts para inicialização <= criar superusuario/ iniciar o server
também será necessário criar um container a parte para o banco de dados.

Ok com isso em mente vamos lá

Clique Aqui Para Ver Os Arquivos(Primeiro Arquivo).

para continuarmos é desejavel que as imagens estejam no docker hub assim poderiam ser acessadas de qualquer maquina, com os devidos privilegios.

  • Docker Hub

    O docker hub é onde ficam os repositórios do docker lá você pode pesquisar sobre, baixar e enviar imagens privadas ou não. Vamos subir nossa imagem para o repositorio docker hub em nossa conta. Algo importante é marcar a tag da imagem somente assim você garante que versões futuras não sobrescrevam nada.
    basta executar

    #para logar via cli
    docker login
    # para marcar a imagem
    docker tag docker-python-django:01amd64 usuario/repositoriodjango:01amd64
    # para enviar ao docker hub em seu repositorio
    docker push gabriel/repositoriodjango:01amd64

  • Docker Compose:

  • Imagine comigo: Temos 2 musicos muito capazes porem desordenados na sincronização, para isso vamos chamar um mastro para organizar a orquestra usaremos docker-compose.yml para isso. docker compose é descrito em docker-compose.yml.

  • link dos arquivos(ver docker-compose.yml)

O codigo acima pode ser moficado para uma versão de testes local podemos modificar:
networks e command respectivamente:

Assim podemos usar esta versão do composer: O nosso "maestro" para a maquina local.

link dos arquivos (ver o terceiro arquivo)

Copyright @2025 Gabriel Morais De Carvalho