В БД лучше хранить лишь текст, ссылки на внешние объекты и мета-информацию.
Дедупликация может быть простой, на уровне файлов. В этом случае достаточно вычислить хеш-сумму (MD5, SHA-1) от содержания изображения целиком и на уровне хранения сверять с имеющимися хешами.
Для дедупликации на уровне блоков в файле нужно искать более специализированные решения (ZFS volume и др.).
По-моему к docker это вовсе не имеет отношения, т.к. речь не о виртуализации исполняемого процесса, а об организации хранения данных.