@@ -36,9 +36,30 @@ The following extensions will be helpful for the upcoming work during the course
## Docker
### What is Docker?
(Explanation of Docker for Students that just use it as a tool and have not much background in computer science)
`Docker` is a *software tool* that allows developers to package their applications into portable and self-sufficient containers.
Think of it like a shipping container that can hold all the necessary components of an application:
- operating system,
- libraries,
- dependencies and
- code.
This container can then be moved between different environments, such as from a developer's laptop to co-workers laptops or to a server in the cloud, without needing to worry about the underlying infrastructure.
In our case, it will help us to ensure we are all working in the same environment, regardless of your personal machines.
A `Docker container` is a **running instance of a `Docker image`**. It is a standalone executable package that includes everything needed to run the application. Docker container run isolated from the host system and other containers.
A `Docker image` is a **snapshot of an application or system** that has been packaged with all the necessary dependencies and configurations required to run and work for a desired use case. It can be thought of a template or a blueprint for creating a `Docker container`.
In `Introduction to Robotics` we will provide you a `Docker image` that is a snapshot of an **Ubunutu operating system** with the **Robot Operating System (ROS)** installed and all the necessary additional libraries that will be necessary for this course.
In the following section you will find information on how to install `Docker` and how to start a running `Docker container` as an instance of the `Docker image` we provided for this course.
### Installing Docker
Comprehensive instructions on how to **install**`Docker Desktop` on your machines operating system can be found [here](https://docs.docker.com/get-docker/).
After successfull installation, **open**`Docker Desktop`. The GUI should open as shown in the following screenshot.