5. Как не терять данные из бд при перезапусках контейнера? Не знаю как, но пару раз база сама очищалась после манипуляций с контейнером
В докере есть такое значение
valumes, которое пробрасывает папку внутрь контейнера. Вот там и нужно хранить данные от бд, чтобы при пересоздания контейнера не потерять, притом у вас должен быть один контейнер с бд для всех сервисов.
Некоторые предлагают использовать docker registry вместо git и build. Для понимания docker registry для хранения образов, а git для хранения кода.
Чтобы автоматизировать автодеплой посмотрите gitlab.
Для работы с локами используйте Graylog. В приложении реализуйте, вместо сбора из контейнеров.