Только для веба — нужен ли отдельный образ для каждого контейнера?

Да, вы можете использовать одну базу данных PostgreSQL для нескольких сайтов Discourse, но если вы не собираетесь использовать мультисайт (см. Multisite configuration with Docker), то для каждого сайта потребуется свой Redis.

Вам нужно будет создать другую базу данных и настроить второй веб-контейнер на использование именно её, а не той, что называется Discourse.