I got a few questions about Docker vs VM after the lecture. The key (examinable) differences are already covered in the lecture slides, so I won't repeat them here.
Many of you will still be asking "but why use Docker, since it doesn't preserve my files (and a VM does)?". The answer is that Docker is more portable and accessible than a VM. Docker is free and fairly easy to run (parallels on Mac is pricey but good, VirtualBox on windows is free but is a royal pain in the butt to get working). Docker containers are easy and quick to distribute to you students, and we can pre-load them with lab content and the programs you need for the course. Building a VM image is much more of a hassle for us staff!
The other reason I chose Docker for this course is that it's a very commonly used tool in industry. The web server example I gave in the lecture is based on (real)[https://hub.docker.com//httpd] (world)[https://hub.docker.com//nginx] examples. After this course, you will have basic familiarity with Docker and be prepared when you see it in the workplace. You are very likely to encounter Docker in any computer science-related job, particularly if you are working with cloud servers.
If you want an in-depth explanation of differences (beyond the scope of this course), have a read of (https://stackoverflow.com/questions/16047306/how-is-docker-different-from-a-virtual-machine)[https://stackoverflow.com/questions/16047306/how-is-docker-different-from-a-virtual-machine]