Итак, предпочтительный способ подхода к докеру - использовать том .
Итак, как объяснялось на этой странице, ваша первая цель - создать указанный том, помните, что тома на самом деле просто своего рода именованные точки монтирования.
- Создайте свой объем
docker volume create factorio_logs
- (Необязательный шаг, но может пригодиться позже): убедитесь, что ваш том существует:
docker volume ls
- Свяжите производителя журналов приложений с вашим томом
docker run -d \
-p 34197:34197/udp \
-p 27015:27015/tcp \
# adapt the line below to wherever your application is configured to store logs
-v factorio_logs:/var/log/factorio \
--name factorio \
--restart=always \
dtandersen/factorio:0.17.16
примечание: -v - это расширенный параметр, который может монтировать том или bind-mount в зависимости от предоставленного ему источника
- Создайте свой потребительский контейнер и также смонтируйте том (это просто
tail -f
для примера)
docker run -ti -v factorio_logs:/var/log/factorio alpine tail -f /var/log/factorio/*.log
Помните, что объем сохраняется в течение срока службы контейнера. Вам придется вручную очистить том и создать его заново, чтобы очистить логи
docker volume rm factorio_logs
docker volume create factorio_logs
Также обратите внимание, что такого рода оркестровка нескольких контейнеров, томов и т. Д. Может быть значительно упрощена с помощью docker-compose