...
Our end goal is to make a container from which we can run our own code. However, to achieve this, we need to create something called an image first. An image is a prototype of a container; it serves as a premade snapshot that can be used to spawn any number of containers. An image is created from something called a Dockerfile, which in its most basic form is just a list of prerequisites you want installed and commands you want to run before every startup. The example below should be a nice starting point.
Code Block | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
# Use the latest tf GPU image as parent. This operation is analogous to inheritance in OOP.
# The image ships with tensorlfow-gpu and jupyter installed for python 2. It is also
# configured so that a jupyter server will be launched at container startup. Note that you
# don't have to use this image as parent.
FROM tensorflow/tensorflow:latest-gpu
# Set working directory for container
WORKDIR /app
# Make ssh directory (useful for adding ssh keys later)
RUN mkdir -p /root/.ssh
# Update repositories
RUN apt-get update
# Install git
RUN apt-get install git -y
# Install pip3 (parent image only comes with python2 stuff)
RUN apt-get install python3-pip -y
# Install your python packages
RUN pip3 install --upgrade pip
RUN pip3 install numpy
# Add more pip installs here. Alternatively move everything to a dedicated requirements file. |
The snippet above should be saved as a simple text file called Dockerfile. To build an image from it, I would recommend putting it in a dedicated folder, e.g.:
Code Block | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
mkdir ~/docker/myproject
mv Dockerfile ~/docker/myproject/Dockerfile
|
3 -
Info |
---|
Related articles
...