| ### Running an official image | |
| You can run one of the automatic [builds](https://hub.docker.com/r/bvlc/caffe). E.g. for the CPU version: | |
| `docker run -ti bvlc/caffe:cpu caffe --version` | |
| or for GPU support (You need a CUDA 8.0 capable driver and | |
| [nvidia-docker](https://github.com/NVIDIA/nvidia-docker)): | |
| `nvidia-docker run -ti bvlc/caffe:gpu caffe --version` | |
| You might see an error about libdc1394, ignore it. | |
| ### Docker run options | |
| By default caffe runs as root, thus any output files, e.g. snapshots, will be owned | |
| by root. It also runs by default in a container-private folder. | |
| You can change this using flags, like user (-u), current directory, and volumes (-w and -v). | |
| E.g. this behaves like the usual caffe executable: | |
| `docker run --rm -u $(id -u):$(id -g) -v $(pwd):$(pwd) -w $(pwd) bvlc/caffe:cpu caffe train --solver=example_solver.prototxt` | |
| Containers can also be used interactively, specifying e.g. `bash` or `ipython` | |
| instead of `caffe`. | |
| ``` | |
| docker run -ti bvlc/caffe:cpu ipython | |
| import caffe | |
| ... | |
| ``` | |
| The caffe build requirements are included in the container, so this can be used to | |
| build and run custom versions of caffe. Also, `caffe/python` is in PATH, so python | |
| utilities can be used directly, e.g. `draw_net.py`, `classify.py`, or `detect.py`. | |
| ### Building images yourself | |
| Examples: | |
| `docker build -t caffe:cpu cpu` | |
| `docker build -t caffe:gpu gpu` | |
| You can also build Caffe and run the tests in the image: | |
| `docker run -ti caffe:cpu bash -c "cd /opt/caffe/build; make runtest"` | |