Boats take damage when they run into things. But does it matter what it runs into? Does it take less damage running into dirt than, say, cobblestone for instance? I know soul sand doesn’t hurt boats, but is there a more mundane material recommended for building docks?
Also, does it only take damage if you run into something while going fast? If you slow down and gently land at your dock will the boat be ok?
Just some important points from the Minecraft Boat Wiki that you may find useful.
If you enter sneak mode while on a
boat, the boat will not break on
impact while traveling at high speed.
Boats do not break when running into
Soul Sand at water level, because Soul
Sand has a lower top surface so that
the boat merely runs aground rather
than crashing, so it is useful to make
docks and harbors out of soul sand.