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
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
docker run
docker stop
docker build
docker pull/push
docker logs
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)