# How To Set Up Docker At SEAS Unless your computer is better than a Core i7 Dual-Core 3.4GHz CPU + 16GB RAM desktop machine, you may want to consider using SEAS's Lab PCs to run your Jupyter server. ![](https://ws3.sinaimg.cn/large/006tNc79gy1foj4h9vm6rj313w0p442v.jpg) This "tutorial" is for students who: - don't want to spend / have already used up their AWS credits, - own laptops too lightweight to compute big, and - have some degree of Linux maintainance. Let's start with setting up the basics: ## Set Up the Environment 1. **Connect to [CETS Virtual PC Lab](https://www.seas.upenn.edu/cets/answers/virtualLab.html),** or physically go to a PC Lab at Moore 100. 2. **Download a Linux installation disc image**. I chose to install my own [Debian](https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/) as a fresh start, but you can probably get away with a [pre-complied image](https://virtualboximages.com/). 3. **Create a VirtualBox Virtual Machine** (VM for short) with the downloaded [Linux distro](https://www.howtogeek.com/132624/htg-explains-whats-a-linux-distro-and-how-are-they-different/). The software VirtualBox is pre-installed in Lab PCs, and can be found in the Start menu. 4. You will probably run out of the temporary disk space allowance after installation (about 5GB). Right-click on the VM in the main window of VirtualBox, and select "Show in folder". **Move the VM from its default location to your student drive** (`S:\`) and restart the VM from there. 5. After installation of Linux, **install Docker** by: ```Shell curl -fsSL get.docker.com -o get-docker.sh sh get-docker.sh ``` 6. When Docker is up, download and run **the container image** by: ```Shell sudo docker run -v $HOME/Jupyter:/home/jovyan -it -p 80:8888 jupyter/all-spark-notebook ``` 7. You should now be able to access Jupyter **within** the VM at . ![](https://ws2.sinaimg.cn/large/006tNc79gy1foj4bgc42zj31480mcq9x.jpg) ## Allow Yourself To Access It Anywhere In SEAS To enable **SEAS-wide access** (so that you don't have to sit in Moore 100 all day long and risk attending recitations you aren't related to), do the following: 1. Turn the VM off. **Change the network adapter of the VM** from "NAT" to "bridged". Turn it back on. (You can probably do this without reboot the VM – but let's just be safe.) 2. Within the VM, dial up a browser. (You didn't install a GUI? Good luck.) Go to , **log in with your PennKey**. 3. Within the VM, **get its public IP** by; ``` curl ipinfo.io/ip ``` 4. Now you can access your Jupyter server via . ## Allow Yourself To Access It Anywhere, Even Out Of SEAS But sometimes you travel outside of SEAS (to take a shower, or to photosynthesize), or you simply want to work remotely at home. We can pretend to be at SEAS by tunneling our Internet requests through ENIAC. A SSH tunnel can be set up with the following parameters: ![](https://ws4.sinaimg.cn/large/006tNc79gy1foj40ax0rlj31160r6grs.jpg) That should be it. Keep in mind that your student drive only have 16GB of storage, and we probably have already spent 6GBs already just for the Jupyter to run. Also, you get automatically logged out if you don't interact with your Lab PC for a while. Except for these limitations, you should be good to go.