The incident happened at Unst harbour about 06:50. There were no passengers on board, only four crew members and no-one was injured.
There was no loss of fuel from the vessel.
The ferry is currently alongside in Unst with the fire brigade pumping out water which was taken on board during the accident.
Shetland Coastguard was called out after the inter-island ferry hit rocks on its way from Yell to Unst.