How can I dock a boat without breaking it?
Two half-steps placed at the lower half of the water level surrounded by other blocks seems to work well.
H = Half step, B = Block, W = Water
[B][B][B][B]
[B][H][H][B]
[B][W][W][B]
[B][W][W][B]
If you want to keep mobs from pushing the boat out, you could include pistons at the open end.