A solution for customising a Sitecore Experience Commerce solution, running inside of Docker Containers. This is running Sitecore Experience Commerce 10.1
These installation steps are heavily based on the XC Installation Guide for Developer Workstation with Containers
- Download 
Packages for On Premises WDP 2021.02-7.0.162&Sitecore Commerce Container SDKfrom Sitecore Downloads. - Extract both archives to a location on disk, you will need this for the params later.
 - Within the 'Sitecore.Commerce.WDP.2021.02-7.0.162' archive, also extract the 'Sitecore.Commerce.Engine.SDK.7.0.55' contained within it.
 - Download & install Postman.
 - Import the postman 
devops&shopsrequest collections from theSitecore.Commerce.WDP.2021.02-7.0.162extract previously into Postman. - Import the postman 
Containers - Docker - Habitat.postman_environmentenvironment configuration from within theSitecore.Commerce.Container.SDK.2.0.159extracted previously into Postman. 
- Ensure docker is running in 'Windows Containers Mode'
 - Ensure the following commands are run from an elevated PS Terminal
 
Run ./scripts/CreateIdServerCert.ps1 -idCertPassword <<ID_CERT_PASSWORD>>
Run ./scripts/GenerateCerts.ps1
Run
./scripts/PopulateEnv.ps1 `
    -licenseFilePath <<PATH_TO_YOUR_LICENSE_FILE>> `
    -braintreeEnvironment <<BRAINTREE_ENVIRONMENT_ID>> `
    -braintreeMerchantId <<BRAINTREE_MERCHANT_ID>> `
    -braintreePublicKey <<BRAINTREE_PUBLIC_KEY>> `
    -braintreePrivateKey <<BRAINTREE_PRIVATE_KEY>> `
    -telerikKey <<64_TO_128_CHAR_RANDOM_STRING>> `
    -idCert <<CONTENTS_OF_SitecoreIdentityTokenSigning.txt_GENERATE_BY_ID_SERVER_SCRIPT_ABOVE>> `
    -idSecret <<64_CHAR_RANDOM_STRING>> `
    -idPassword <<ID_CERT_PASSWORD_USED_ABOVE>> `
    -xcIdSecret <<64_CHAR_RANDOM_STRING>> `
    -reportingApiKey <<32_CHAR_RANDOM_STRING>>
Stand up docker containers with the following commands
docker-compose up -d
Wait for all containers to report healthy
- In Postman, ensure you have the 
Containers - Docker - Habitatselected. - Execute the 
Authentication -> Sitecore -> GetTokencommand. - Execute the 
SitecoreCommerce_DevOps -> 1 Environment Bootstrap -> Bootstrap Sitecore Commercecommand. - Execute the 
SitecoreCommerce_DevOps -> 3 Environment Initialize -> Ensure/Sync default content pathscommand. - Execute the 
SitecoreCommerce_DevOps -> 3 Environment Initialize -> Initialize Environmentcommand. - Execute the 
SitecoreCommerce_DevOps -> 3 Environment Initialize -> Check Long Running Command Statuscommand to wait for confirmation theInitialize Environmenthas completed. 
Populate your hosts file with the following entries
127.0.0.1 xc1cd.localhost 127.0.0.1 xc1cm.localhost 127.0.0.1 xc1id.localhost 127.0.0.1 bizfx.localhost 127.0.0.1 authoring.localhost 127.0.0.1 shops.localhost 127.0.0.1 ops.localhost
- Log into Sitecore CMS at https://xc1cm.localhost/sitecore
- Username: admin
 - Password: Password12345
 
 - Open Content Editor
 - Click 
Commercetab - Click 
Refresh Commerce Cache - Click 
Update Data Templates 
- In Postman, ensure you have the 
Containers - Docker - Habitatselected. - Execute the 
SitecoreCommerce_DevOps -> Minions -> Run FullIndex Minion - Customerscommand. - Execute the 
SitecoreCommerce_DevOps -> Minions -> Run FullIndex Minion - PriceCardscommand. - Execute the 
SitecoreCommerce_DevOps -> Minions -> Run FullIndex Minion - Promotionscommand. 
- Log into Sitecore CMS at https://xc1cm.localhost/sitecore.
 - Load 
Control Panel. - Select 
Populated Solr Managed Schema. - Ensure all checkboxes are checked.
 - Click 
Populate. - When complete click 
Close. - Click 'Indexing Manager'.
 - Ensure all checkboxes are checked.
 - Click 
Rebuild, (Note, this can be a slow process to complete). - When complete click 
Close. 
- Follow steps here to create the default Storefront & Tenant.
 - Perform a full database publish.
 - Perform a rebuild of the 
Siecore_master_index,Sitecore_web_index,Sitecore_sxa_master_index, &Sitecore_sxa_web_indexfrom theindexing managerin thecontrol panelas in the step above. 
- The site should be running now, you can access it at https://xc1cd.localhost/
 - Sometimes when loading the site for the first time you dont see any products showing, stopping and starting the docker containers should fix this.