Craft Commerce: Creating Customer Accounts?
Yes, if you want users to be able to register, you would need to allow public registrations and implement your own standard registration form:

https://craftcms.com/docs/templating/user-registration-form

When they enter their email as a guest (anonymous) user a 'guest' customer record is created and related to the current cart, but it is not associated with a craft user account. This customer record is not retrievable and is only created for the purpose of having a related customer to the current order. There is no way to see this customer record in the back-end.

If the user is logged in a related customer record is created that has a 1:1 relationship with the user. The same customer record is used every time the useris logged in. This customer is the central place that addresses and orders are related to. If you want to see the previous orders for a customer, add the "Customer Info" field to your user profile custom fields.