Docker can be used as an everyday development tool. It allows building, shipping and running applications securely by using containers. Containers allow encapsulating applications from the host machine and provide resource isolation using features like cgroups and namespaces. The key Docker concepts include images, containers, volumes, and the Docker engine. Docker Compose can be used to define and run multi-container Docker applications using a YAML file.