Brabantia's Profile soap dispenser has a 180ml capacity - enough to hold most packaged refill soap - and can also be used for hand lotion or shampoo. It's ideal for humid areas as it's made from corrosion-resistant materials.
There's a large-fill opening and non-drip pump mechanism. The wide, soft, non-slip base means no slipping or scratching and it's easy to clean - just remove the inner holder and pump hot water through.