Source: https://cedric.cnam.fr/~bouzefra/cours/Exercice_sur_les_Dockers.pdf