docker: use source install and prune image

Using source over PPA seems appropriate since MiniNDN is
used primarily for experimentation.

Other fixes:
* Let MiniNDN install mininet.
* Switch to Ubuntu 22.04
* Fix incorrect pruning of layers

Change-Id: Id5e52756929fbe3a40597c738ca81989ffb2c075
Signed-off-by: Varun Patil <varunpatil@ucla.edu>
diff --git a/Dockerfile b/Dockerfile
index e0ee5e8..304da77 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,5 +1,5 @@
-# Setup container with Ubuntu 20.04 image
-FROM ubuntu:20.04
+# Setup container with Ubuntu 22.04 image
+FROM ubuntu:22.04
 
 # Set the working directory to /
 WORKDIR /
@@ -9,25 +9,24 @@
 
 # Update container image
 RUN apt-get update -y && \
-    apt-get autoremove -y && \
     apt-get install --no-install-recommends -y \
         lsb-release sudo \
         zip unzip wget git ca-certificates \
         curl iproute2 iputils-ping net-tools \
+        python3 python3-pip \
         tcpdump vim x11-xserver-utils xterm && \
         update-ca-certificates && \
+    rm -rf /var/lib/apt/lists/* && \
     alias python=python3
 
-RUN git clone --depth 1 https://github.com/mininet/mininet.git && \
-    cd mininet && ./util/install.sh && cd /
-
 COPY . /mini-ndn
 
 RUN cd mini-ndn && \
     pip3 install -r requirements.txt && \
-    ./install.sh -y --ppa && cd /
-
-RUN rm -rf /var/lib/apt/lists/*
+    ./install.sh -y --source && \
+    cd dl/mininet && make install && cd ../.. && \
+    cd dl/mininet-wifi && make install && cd ../.. && \
+    rm -rf dl && rm -rf /var/lib/apt/lists/* && cd /
 
 COPY docker/ENTRYPOINT.sh /
 RUN chmod +x ENTRYPOINT.sh