A huge blast on an oil tanker in a South Korean port has sparked a raging fire that then spread to a nearby vessel, leaving 18 people injured, authorities say.