Je viens de commencer avec Docker et richt maintenant j'essaie de comprendre comment configurer mon premier environnement Apache 2 / PHP docké. Jusqu'à présent, j'utilisais des machines virtuelles Linux complètes, où j'utilisais des fichiers journaux écrits dans / var / log / apache2, puis j'utilisais "logrotate" pour accéder à un nouveau fichier chaque jour.
Les fichiers journaux étaient principalement utilisés pour la détection immédiate des erreurs (c'est-à-dire pour se connecter au serveur et utiliser moins pour ouvrir les fichiers access.log et error.log actuels) et pour fail2ban.
Si je ne me trompe pas, cela n'est pas possible dans un environnement Docker - principalement parce que vous ne pouvez généralement pas vous connecter aux conteneurs pour consulter les journaux. De plus, les journaux seront perdus si le conteneur est retiré.
Donc: Quelle est la méthode la plus courante pour travailler avec / émuler / remplacer access.log / error.log dans cette situation? Quelles sont les solutions courantes pour les environnements de production et de développement?
Jusqu'à présent, mes idées incluent l'utilisation d'un partage NFS (lent et peut provoquer des collisions de noms de fichiers si ce n'est pas prudent) et logstash ( je ne sais pas si cela vaut la peine et pratique pour les petits sites ou même les environnements de développement?), Mais je suis sûr que les gens intelligents avez trouvé de meilleures solutions?
Je ne sais pas si cela fait une différence, mais actuellement je fonde mon image Docker sur php: 5.6-apache .
docker attach <container name>
c'est le bon moyen de voir la sortie standard de votre conteneur. Mais sachez que si vous faites ctrl + d ou ctrl + c, cela mettra fin (sigkill) à votre tâche en cours. Vous devez donc le détacher correctement en utilisant la touche d'échappementctrl+p+q
. Si vous voulez simplement décortiquer dans votre conteneur, je préfère utiliser laexec
commande ci-dessus.