Not all computers can run Docker - don't panic if your computer can't run Docker. There are other ways to work on COMP1511 on your own computer - almost any computer can be used to work at home.
Docker requires a 64-bit operating system (you can't run it on 32-bit versions of Windows). You also need 4+ Gb of memory (RAM) to run Docker.
You will need to download a Docker image of 150 megabytes - be careful if you have a limited internet quota. Do not download this via your phone! If you don't have a large internet quota at home you may be able to download Docker images via Uniwide while you are at UNSW.
Follow the instructions for installing Docker (stable or beta should be fine). Note Docker will enable Hyper-V which may cause problems if you run VirtualBox.
After Docker is installed you need to enable access to your local drive via Docker settings enable access to your local drive via Docker settings (click on the Docker Icon in the System Tray)
If your machine has less than 8Gb of memory you probably want to reduce the amount of memory used by Docker to the minimum (1 Gb) in Docker Settings as well.
Then open a Command Prompt or PowerShell
Then enter the Docker commands below.
Hints to be added here (contributions welcome)
Starting Docker and mounting volume is different (and a little more complicated) using Docker toolbox.
After installing Docker Toolbox, click on the shortcut for Docker Quickstart terminal to run it:
## .
## ## ## ==
## ## ## ## ## ===
/"""""""""""""""""\___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~
\______ o __/
\ \ __/
\____\_______/
docker is configured to use the default machine with IP 192.168.99.100
For help getting started, check out the docs at https://docs.docker.com
Start interactive shell
andrewt@DESKTOP-D5CH4U3 MINGW64 ~
then enter the Docker commands below.
Hints to be added here (contributions welcome)
Hints to be added here (contributions welcome)
C:\users\andrewt>docker run hello-world Hello from Docker! ...You will need to mount your directory into Docker to do any work, so test if this works.
The command line option -v /c/Users/andrewt:/root causes the local directory /c/Users/andrewt to be mounted in the container as /root. You'll need to change the andrewt part of course.
C:\users\andrewt>docker run -v /c/Users/andrewt:/root alpine ls /root AppData Application Data Contacts Cookies Desktop Documents Downloads ...If you don't see any files make check you have the right directory name.
Beware this will involve a 150Mb download the first time you run it, and take several minutes.
Don't forget the -it command line argument - you need that to use Docker interactively.
C:\Users\andrewt>docker run -it --cap-add=SYS_PTRACE -v /c/Users/andrewt:/root comp1511/sh
Welcome to the COMP1511 Docker command-line tools & scripts container
You can fetch any recent changes to autotest files from CSE (1-2Mb).
by running: update_files
You can also fetch the latest version of this image (beware can be 100+Mb
if there have been major changes) by running:
docker pull comp1511/sh
Enter your zid: 5555555
Storing z5555555 in /root/.zid
You don't seem to have a ssh key.
Assumin this is your own computer you might like to create a ssh key
by running this command (just hit return for the questions):
ssh-keygen
You can then copy it to CSE using this command:
ssh-copy-id z5555555@cse.unsw.edu.au
pwd
/root
Docker$ id
uid=0(root) gid=0(root) groups=0(root)
Docker$ perl -e 'print "Docker perl rocks!!!\n"'
Docker perl rocks!!!
Docker$ echo 'print("Docker python rocks!!!")'|python3.5
Docker python rocks!!!
Docker$ ls -l labs/lab03
total 4
-rwxr-xr-x 1 root root 100 Sep 8 2016 digits.sh
-rwxr-xr-x 1 root root 110 Sep 8 2016 echon.sh
-rwxr-xr-x 1 root root 203 Sep 8 2016 file_sizes.sh
-rwxr-xr-x 1 root root 1809 Sep 8 2016 courses.sh
Docker$ cd labs/lab03
Docker$ autotest lab03
Test digits_1 (digits.sh) - passed
Test digits_2 (digits.sh) - passed
Test digits_3 (digits.sh) - passed
Test digits_4 (digits.sh) - passed
Test digits_5 (digits.sh) - passed
Test echon_1 (echon.sh 5 hello) - passed
Test echon_2 (echon.sh 0 nothing) - passed
Test echon_3 (echon.sh 1 goodbye) - passed
Test echon_4 (echon.sh 42 answer) - passed
Test echon_5 (echon.sh 2>&1) - passed
Test echon_6 (echon.sh 1 2 3 2>&1) - passed
Test echon_7 (echon.sh hello world 2>&1) - passed
Test echon_8 (echon.sh -42 lines 2>&1) - passed
Test file_size1 (cd data_dir;../file_sizes.sh) - passed
Test challenge1 (courses.sh JAPN) - passed
Test challenge2 (courses.sh MATH) - passed
Test challenge3 (courses.sh COMP) - passed
Test challenge4 (courses.sh PHYS) - passed
Test challenge5 (courses.sh MECH) - passed
19 tests passed 0 tests failed
You'll find convenient for git and give to create
an ssh key.
Docker$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: 86:e3:0e:9f:0d:40:fe:69:14:9a:8a:63:94:b7:61:b3 root@f17f24b3acb7 The key's randomart image is: +---[RSA 2048]----+ | | | | | . . | | .o o o | | o == + S | |..o.== + | |o..E. * | |.. = + | | + . | +-----------------+ Docker$ ssh-copy-id z5555555@cse.unsw.edu.au RSA key fingerprint is 23:d5:37:a9:29:3c:b8:4f:01:e6:ae:93:82:6c:22:8c. Are you sure you want to continue connecting (yes/no)? yes /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys z5555555@cse.unsw.edu.au's password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'z9300162@cse.unsw.edu.au'" and check to make sure that only the key(s) you wanted were added. Docker$ cat /root/.ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCtkXx5F6zVcym6utNmT78P4vC3EvBmhsnXAeyDICWYVz2pR/REPiOF5tSpsGX0TJLiOcl2S7PW2rRbwBLPnLL8MoxBp9xbF5CZ6kKMtvajUB+gJU76QRxQOF+tawIkztRYuVY2pmzqjMGTduD0IS8roOxhKoBMnTrm7bjACO0ic5U8+6a91nq/0gOGvQ5z2BE9BrO9RuBrQxIBabiz5y3phvk0hfXc8gTGGHJi8HoQXWQMIJxTVme6NxQAXL5OiTbXI8KEMfnJDNHzCoZC3xTXw8WUW80xqGsYN/GF0Vc+p0zL0/ieeEphLNDPDs1LbrDj6TxksomdOvbK8GpymJ6z root@f17f24b3acb7The
ssh-copy-id command will have added your ssh key to
the .ssh/authorized_keys file for your CSE account.
This will make it easy for you run give from the container.
Docker$ give COMP1511 lab01 bad_pun.c bird.c kangaroo.c Uploading to a temporary directory at CSE: bad_pun.c bird.c kangaroo.c Warning: Permanently added 'zappa.cse.unsw.edu.au,129.94.242.68' (RSA) to the list of known hosts. Upload completed Running give COMP1511 lab03 bad_pun.c bird.c kangaroo.c Session: 17s1 ...