diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..9414382 --- /dev/null +++ b/.dockerignore @@ -0,0 +1 @@ +Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..e0ee5e8 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,38 @@ +# Setup container with Ubuntu 20.04 image +FROM ubuntu:20.04 + +# Set the working directory to / +WORKDIR / + +# expose ports for openvswitch-switch +EXPOSE 6633 6653 6640 + +# 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 \ + tcpdump vim x11-xserver-utils xterm && \ + update-ca-certificates && \ + 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/* + +COPY docker/ENTRYPOINT.sh / +RUN chmod +x ENTRYPOINT.sh + +# Change the working directory to /mini-ndn +WORKDIR /mini-ndn + +ENTRYPOINT ["/ENTRYPOINT.sh"] diff --git a/docker/ENTRYPOINT.sh b/docker/ENTRYPOINT.sh new file mode 100644 index 0000000..cd44fa7 --- /dev/null +++ b/docker/ENTRYPOINT.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# set python3 alias, but needs permanent fix in image directly +alias python=python3 + +service openvswitch-switch start +ovs-vsctl set-manager ptcp:6640 + +bash + +service openvswitch-switch stop diff --git a/docker/README.md b/docker/README.md index db48f9e..97a2816 100644 --- a/docker/README.md +++ b/docker/README.md @@ -1,20 +1,12 @@ [comments]: The original author of Mini-NDN docker is Md Ashiqur Rahman (marahman@email.arizona.edu) -| :exclamation: Mini-NDN docker is in experimental phase, it uses older version of Mini-NDN and is incompatible with the current version | -|-----------------------------------------------------------------------------------------------------------------------------------------| +### `docker build` -### `docker build` or `docker pull` - -The [Dockerfile](https://github.com/ashiqopu/docker-minindn/blob/master/Dockerfile) can be used directly to `build` an image from scratch. +The Dockerfile can be used directly to `build` an image from scratch. * Build with `Dockerfile`: - * Open terminal and use the following command: - ```bash - git clone https://github.com/ashiqopu/docker-minindn - cd docker-minindn - ``` - * Type and enter. + * Clone the repository and type. ```bash docker build -t minindn . ```