Bellingham's Squalicum Harbor is very nice. The $5 put-in fee covers parking for as long as you need and it has all the usual amenities. Really, it is an excellent harbor.