Я тільки починаю роботу з Docker і Richt зараз я намагаюся розібратися, як створити своє перше докерізоване середовище Apache 2 / PHP. До сих пір я використовував повноцінні віртуальні віртуальні машини Linux, де я використовував файли журналів, що записуються в / var / log / apache2, а потім використовую "logrotate", щоб переходити до нового файлу щодня.
Логістичні файли в основному використовувались для негайного виявлення помилок (тобто увійти на сервер та менше використовувати для відкриття поточних файлів access.log та error.log) та для fail2ban.
Якщо я маю рацію, це неможливо здійснити в середовищі Docker - головним чином тому, що ви зазвичай не можете увійти до контейнерів, щоб переглянути журнали. Також журнали будуть втрачені, якщо контейнер буде вилучений.
Отже: який найпоширеніший метод роботи з / емуляцією / заміною access.log / error.log у цій ситуації? Які спільні рішення як для виробничого, так і для виробничого середовища?
До цих пір мої ідеї включають використання спільного доступу до NFS (повільний і може спричинити зіткнення імен файлів, якщо не бути обережним), а також logstash (не впевнений, чи варто докладати зусиль і практично для менших сайтів чи навіть середовищ розробника?), Але я впевнений, що розумні люди придумали кращі рішення?
Не впевнений, чи має це значення, але наразі я засновую своє зображення Docker на php: 5.6-apache .
docker attach <container name>
це хороший спосіб побачити stdout з вашого контейнера. Але будь ласка, будьте уважні, що якщо ви зробите ctrl + d або ctrl + c, це припинить (sigkill) ваше поточне завдання. Тому вам доведеться правильно від'єднати його за допомогою клавіші втечіctrl+p+q
. Якщо ви просто хочете скористатися вашим контейнером, я вважаю за краще використовуватиexec
команду вище.