• Stars
    star
    503
  • Rank 87,705 (Top 2 %)
  • Language
    Dockerfile
  • License
    MIT License
  • Created over 9 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Compilation of Dockerfiles with automated builds enabled on the Docker Registry

MIT License

dockerfiles

Compilation of Dockerfiles with automated builds enabled on the Docker Hub. Not suitable for production environments. These images are under continuous development, so breaking changes may be introduced.

Nearly all images are based on Ubuntu Core 14.04 LTS, built with minimising size/layers and best practices in mind. Dependencies are indicated left to right e.g. cuda-vnc is VNC built on top of CUDA. Explicit dependencies are excluded.

Graphical applications

Starting graphical (X11) applications is possible with the following commands:

docker run -it `# Running interactively, but can be replaced with -d for daemons` \
  -e DISPLAY `# Pass $DISPLAY` \
  -v=/tmp/.X11-unix:/tmp/.X11-unix `# Pass X11 socket` \
  --ipc=host `# Allows MIT-SHM` \
  <image>

General information on running desktop applications with Docker can be found in this blog post. You probably will also need to configure the X server host (xhost) to give access. For hardware acceleration on Linux, it is possible to use nvidia-docker (with an image built for NVIDIA Docker), although OpenGL is not fully supported.

On Mac OS X, use XQuartz and allow connections from network clients. Then the following can be used:

docker run -it \
  -e DISPLAY=`ifconfig en0 | grep inet | awk '$1=="inet" {print $2}'`:0 `# Use XQuartz network $DISPLAY` \
  --ipc=host \
  <image>

Daemonising containers

Most containers run as a foreground process. To daemonise (in Docker terminology, detach) such a container it is possible to use:

docker run -d <image> sh -c "while true; do sleep 1; done"

It is now possible to access the daemonised container, for example using bash:

docker exec -it <id> bash

Sibling containers

To start containers on the host from within a docker container, the container requires docker-engine installed, with the same API version as the Docker daemon on the host. The Docker socket also needs to be mounted inside the container:

-v /var/run/docker.sock:/var/run/docker.sock

CUDA

Many images rely on CUDA. These images are versioned with the corresponding tags, e.g. "8.0" and "7.5", on the Docker Hub.

These images need to be run on an Ubuntu host OS with NVIDIA Docker installed. The driver requirements can be found on the NVIDIA Docker wiki.

Deprecated images

kaixhin/cuda and kaixhin/cudnn have now been deprecated in favour of the official solution (nvidia/cuda).

Migration

In the future it will hopefully be possible to checkpoint and restore Docker containers easily using CRIU. This would alleviate some issues, such as the inability to restart a VNC image successfully.

Automated Builds

Automated Builds on the Docker Hub have several advantages, including reproducibility and security. However the build cluster has the following limits for Automated Builds:

  • 2 hours
  • 1 CPU
  • 2 GB RAM
  • 512 MB swap
  • 30 GB disk space

The main tip for keeping within the CPU and memory limits is to reduce parallelism/forking processes. Due to their logging system, redirecting stdout/stderr to /dev/null can potentially save a reasonable amount of memory.

Acknowledgements

Some Dockerfiles have been modified from the work of others. The source for these are:

Citation

If you find this useful in research please consider citing this work.

More Repositories

1

Rainbow

Rainbow: Combining Improvements in Deep Reinforcement Learning
Python
1,424
star
2

grokking-pytorch

The Hitchiker's Guide to PyTorch
1,020
star
3

Autoencoders

Torch implementations of various types of autoencoders
Lua
455
star
4

PlaNet

Deep Planning Network: Control from pixels by latent planning with learned dynamics
Python
337
star
5

imitation-learning

Imitation learning algorithms
Python
297
star
6

Atari

Persistent advantage learning dueling double DQN for the Arcade Learning Environment
Lua
263
star
7

ACER

Actor-critic with experience replay
Python
251
star
8

FGLab

Future Gadget Laboratory
HTML
223
star
9

spinning-up-basic

Basic versions of agents from Spinning Up in Deep RL written in PyTorch
Python
197
star
10

FCN-semantic-segmentation

Fully convolutional networks for semantic segmentation
Python
185
star
11

NoisyNet-A3C

Noisy Networks for Exploration
Python
178
star
12

nninit

Weight initialisation schemes for Torch7 neural network modules
Lua
100
star
13

rlenvs

Reinforcement learning environments for Torch7
Lua
93
star
14

FGMachine

Future Gadget Machine
JavaScript
68
star
15

malmo-challenge

Malmo Collaborative AI Challenge - Team Pig Catcher
Python
65
star
16

torch-pastalog

A Torch interface for pastalog - simple, realtime visualization of neural network training performance
Lua
45
star
17

GUDRL

Generalised UDRL
Python
37
star
18

Dist-A3C

Distributed A3C
Python
35
star
19

EC

Episodic Control
Python
19
star
20

human-level-control

Presentation on Human-Level Control Through Deep Reinforcement Learning
HTML
13
star
21

Easy21

Reinforcement Learning Assignment: Easy21
Lua
11
star
22

end-to-end

Presentation on End-to-End Training of Deep Visuomotor Policies
HTML
9
star
23

docker-torch-mega

Docker image for Torch with CUDA support + extra Torch libraries
7
star
24

cuda-workshop

CUDA Workshop
Cuda
6
star
25

SARCOS

ML models trained on the SARCOS dataset
Python
6
star
26

IncSFA

Incremental Slow Feature Analysis
Lua
4
star
27

sybilsystem

MATLAB Deep Learning Library
MATLAB
1
star
28

MCAC

Minimal Criterion Artist Collective
Python
1
star
29

GlassMate

Team Inforaptor's project for IC Hack '14
Java
1
star
30

bakapunk

A tool for finding similar songs in your music library
JavaScript
1
star