An Iranian oil tanker collided with a bulk freighter and caught fire off China's eastern coast, leaving its entire crew of 32 missing, most of them Iranians, authorities said.

The collision between the Sanchi and the Chinese freighter occurred on Saturday evening roughly 300km off Shanghai, where the Yangtze River meets the East China Sea.

The missing - 30 Iranians and two Bangladeshis - are all from the Sanchi tanker, which spilled oil and was floating while still burning early on Sunday, Chinese maritime authorities said.

Al Jazeera's Rob McBride, reporting from Beijing, said Chinese authorities dispatched specialised vessels to the scene to limit the damage from the oil spilling out of the tanker.

"The main priority is finding the missing crew members of the Sanchi, but a big concern is the blaze and the oil aboard the ship. It was heading north carrying about 136,000 tonnes of refined oil for South Korea," McBride said.

"There have been reports of oil in the water. The East China Sea is shared by China, South Korea and also some of the southern islands of Japan. There will be a lot of concern in all of those countries about any developing slick and which direction it may be heading," he added.

It was not immediately clear what caused the collision.

The Sanchi ship has operated under five different names since it was built in 2008, according to the UN-run International Maritime Organization (IMO).

The IMO listed its registered owner as Hong Kong-based Bright Shipping Ltd, care of the National Iranian Tanker Co, a publicly traded company based in Tehran.

It is the second collision for a ship from the National Iranian Tanker Co in less than a year and a half. In August 2016, one of its tankers collided with a Swiss container ship in the Singapore Strait, damaging both ships but causing no injuries or oil to spill.