Dúvidas com docker
Bom.. Tem um tempinho que estudo programação, recentemente comecei usar o docker por conta do conteúdo que venho estudando, e por conta de um projeto pessoal que venho procurando desenvolver.. Como tem pouco tempo que venho usando o docker, tenho tido umas dúvidas que é: ao desenvolver um projeto, tem a necessidade de criar um Dockerfile para que tenha como rodar uma aplicação em outro ambiente? (desde já agradeço pelas respostas).
Na teoria não precisa, mas é mais fácil se fizer.
Por exemplo, pra rodar um container com o MySQL você pode só usar esse comando no seu terminal:
docker run -d --name NOME_IMAGEM -e MYSQL_ROOT_PASSWORD=SENHA(root) -p 3307:3306 mysql
Mas se você fizer um Dockerfile:
# Usar a imagem oficial do MySQL
FROM mysql:latest
# Definir a senha para o usuário root do MySQL
ENV MYSQL_ROOT_PASSWORD=SENHA(root)
# Expor a porta 3306 para permitir conexões externas
EXPOSE 3306
Então é só rodar algo como:
docker compose up -d --build
// ou
docker build -t nome_da_imagem .
docker run -d --name nome_do_container -p 3307:3306 nome_da_imagem
Ai depende mais do que você prefere, porém pra acostumar, acho que é legal ir fazendo sempre no Dockerfile, fica tudo muito mais organizado. Só que vai da necessidade/complexidade do seu problema.
A resposta é: depende.
Se você está desenvolvendo uma aplicação pra aprender, localmente e etc, é dispensavel. Apenas tenha certeza de documentar muito bem o que é necessário para que sua aplicação seja instanciada na máquina e qual o procedimento a ser seguido para isso.
Se estamos falando de projetos reais, é muito importante que o projeto conte com um Dockerfile. Lembre-se: voce nao esta desenvolvendo algo que vai funcionar apenas localmente, isso vai rodar em alguma Cloud ou maquina on premise e sua aplicação será manipulada por algum orquestrador de containers (como Kubernetes ou ate docker-compose). O dockerfile é um arquivo que descreve como criar uma imagem da sua aplicacao, de forma que seja possivel e simples iniciar uma máquina com as condições ideais para que essa aplicação funcione de forma correta.
Então, sim. É indispensável criar dockerfiles para aplicações que vão estar em produção. Não, voce nao precisa ter isso localmente mas é boa pratica e é importante aprender
Alguém sabe dizer se tem algum site que tem alguns exemplo de configurar o docker compose, eu também comecei usar o docker a pouco tempo e apanhei pra configurar uma imagem do mysql. Tive problema com versão, configuração do composer e o pior é que eu tava olhando pra documentação. Só consegui resolver fuçando em outros repositorios no github, mas deu um trambalho.