From d3896fdb0c6eebb127e2a6f0f3d4fc88bb7b18b9 Mon Sep 17 00:00:00 2001 From: Jeremy Janella Date: Thu, 10 Sep 2026 12:46:10 -0400 Subject: [PATCH] init --- Dockerfile | 25 +++++++++++++++++++++++++ docker-compose.yml | 10 ++++++++++ readme.md | 11 +++++++++++ setup.sh | 24 ++++++++++++++++++++++++ 4 files changed, 70 insertions(+) create mode 100644 Dockerfile create mode 100644 docker-compose.yml create mode 100644 readme.md create mode 100644 setup.sh diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..ee01e8f --- /dev/null +++ b/Dockerfile @@ -0,0 +1,25 @@ +FROM ubuntu:22.04 + +WORKDIR /mininet + +RUN apt update && apt install -y \ + mininet \ + iproute2 \ + iputils-ping \ + net-tools \ + build-essential \ + git \ + sudo \ + gcc \ + python2 \ + python-setuptools \ + curl \ + wget +RUN mkdir fixes \ + && cd fixes \ + && curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py \ + && python2 get-pip.py +RUN pip2 install twisted +RUN ln -s /usr/bin/python2 /usr/bin/python + +CMD /bin/bash diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..54a2208 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,10 @@ +services: + dev: + build: . + container_name: mininet + privileged: true # Required for Mininet and network namespaces + volumes: + - ./mininet:/mininet + stdin_open: true + tty: true + network_mode: "bridge" diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..db3cf92 --- /dev/null +++ b/readme.md @@ -0,0 +1,11 @@ +# Mininet Container +Run `bash setup.sh` to create a docker container with an environment ready for mininet development. + +# Usage +``` +# create the container +bash setup.sh +# enter the container +docker exec -it mininet bash +``` + diff --git a/setup.sh b/setup.sh new file mode 100644 index 0000000..dcb507d --- /dev/null +++ b/setup.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +echo "mininet" > .dockerignore +mkdir -p mininet +cd mininet/ +echo Cloning Mininet Lab +git clone https://huangty@bitbucket.org/huangty/cs144_lab3.git 1>/dev/null 2>/dev/null +cd cs144_lab3/ +git checkout --track remotes/origin/standalone 1>/dev/null 2>/dev/null +cd .. +echo Cloning Pox +git clone http://github.com/noxrepo/pox 1>/dev/null 2>/dev/null +cd pox/ +git checkout f95dd1a81584d716823bbf565fa68254416af603 1>/dev/null 2>/dev/null +cd .. +sed -i '31s/.*/ router = self.addSwitch( '\''sw0'\'', protocols=["OpenFlow10"])/' cs144_lab3/lab3.py + # 'router = self.addSwitch( \'sw0\', protocols=["OpenFlow10"])' +cd .. +echo Load Open VSwitch kernel module +sudo modprobe openvswitch +docker build . # build the docker file +docker compose up -d # start the docker file +docker exec mininet /etc/init.d/openvswitch-switch start +docker exec mininet ln -s /mininet/pox /mininet/cs144_lab3/pox