Estou usando uma arquitetura de microsserviços. Já desenvolvi meus serviços daemon (shell script). Agora quero executar cada um deles em um contêiner docker. Sou novo no docker, então preciso de algumas recomendações, como documentos ou tutoriais, que me orientem sobre como anexar esses daemons a contêineres e como garantir a comunicação entre eles.
Responder1
Normalmente você cria uma imagem Docker com um Dockerfile que:
- deriva alguma imagem[1] (
FROM debian
) - instala qualquer pacote adicional que você precisa para ajustar seu script (
RUN apt install ...
) - copia seu script para a imagem (
COPY daemonscript.sh /opt/daemonscript.sh
) - define o script como o que será executado: `ENTRYPOINT ["/bin/bash","/opt/daemonscript.sh","parm1","parm2"]
Depois de ter a imagem, você pode executá-la, possivelmente usando "bind-mounts" para associar os diretórios de dados do seu contêiner aos diretórios do seu host, se precisar persistir os dados nas execuções[2]
Para executar vários contêineres juntos, a maneira mais simples é usardocker-compose
[1] para escolher a imagem certa, normalmente procuramos uma imagem onde a instalação adicional seja mantida ao mínimo, mas ao mesmo tempo não esteja sobrecarregada com bagagem desnecessária. Você encontra imagens prontas para executar sobre qualquer coisa: Apache, nginx, python, wordpress, mysql..
[2] manter dados na instância do contêiner é um mau hábito, um contêiner deve ser considerado "transitório" e, claro, a imagem do docker é imutável.