Of course containers can be used in production! A lot of companies do so!
If you choose to package your deliverables as docker images, you can package your application in images and use the images for QA and once QA approces them for release, you can run containers of the same images in production. Though usualy people run productive workload in a multi host environment with an orchestrator like docker swarm or kuberentes.
You can use docker during development to run the required system environment, like appservers, database, message bus in containers on the developer machines and still run the IDE on the hosts os. The developer machine stays clean as nothing appart the IDE is installed.