I am looking to deploy a docker image to a customer, however, I do not want the customer the ability to duplicate and distribute the image or committed container to other machines or clients. Is there a way to possibly tie a docker image or running container to a machine’s mac address? Does anyone else have any ideas?
You can’t do this. Docker doesn’t have the ability to prevent docker tag; docker push to send an image to a private registry, or docker save; docker load to copy an image offline. Also remember that anyone who can run any Docker command has unrestricted root access to their system; and the contents of /var/lib/docker aren’t that hard to dig into.
The closest you could get is the same you could get without Docker: make sure you use a compiled language (Go is popular these days, C/C++ will work well) and gate execution on something like a license key that, in principle, only your paying customers will have.