---
# System prepended metadata

title: Exercises L9

---

---
title: "Exercises L9"
author: Jonathan, Adam and Martin
geometry: margin=1cm
output: pdf_document
---

# Let’s investigate Docker Hub. Try to find containers providing functionality for:

a) Network monitoring.	    =	bitnami/prometheus
b) Network visualization    =	skydive/skydive
c) Routing		            =	rancher/ingress-controller
d) Load Balancing	        =	traefik
e) Web hosting		        =	traefik
f) Database		            =	mongo
g) Media Streaming	        =	bitnami/kafka
h) LTE’s eNB		        = 	snslab/srsenb
i) LTE’s EPC		        =	openverso/open5gs
j) SDN Controller	        =	sdnvortex/network-controller
k) Docker registry	        =	registry

# Is all this free? Explain different options that you may encounter.

- Dockerhub is not free to use if you are using it for storing images.
- The applications are all free to download, but not necessary open source.
- If open source should survive its developers need food, so someone is paying them to keep developing, this can happen in many ways.

# Is there any risk? Is it OK to run any container from a register? What about from DockerHub?

There is a risk yes - anyone can upload docker images, and they could possibly contain virus and bitcoin miners.

# Compare Virtual Machines and Containers. Are VMs completely out-phased by containers or each has its own area of applicability? If so, when would you use then VMs and not containers? Explain

- A VM is a good choice for emulating whole platforms (like a server or network) with multiple resources in contrast to containers who which should only contains a single application and files.
- VM's are good for legacy monolith applications and can run far more operations than a single container.
- VM's are the only way to run a different OS on top of another. (eg. Windows on Linux)
- VM's are, by default, more secure than a container because it inherently has a strong seperation from the host kernel.
- In the case of wanting to provide a desktop environment for your users, VM's are ideal. This can be done in docker but is not very good.