Tensorflow is a free and end-to-end open-source machine learning platform created by the Google Brain team. It is a library used for numerical computation and large-scale machine learning. You can install it in a Python virtual environment or using Anaconda, as a docker container. It comes with a set of libraries and community resources that helps you to develop machine learning programs and applications.

In this tutorial, we will show you how to install Tensorflow with Docker on Ubuntu 20.04.

Step 1 – Install Docker CE

First, install all required dependencies with the following command:

apt-get install git apt-transport-https ca-certificates curl software-properties-common -y

Next, add the Docker GPG key and repository with the following command:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"

Once the repository has been added, install the Docker and Docker compose with the following command:

apt-get install docker-ce -y

Once the installation is completed, verify the Docker version with the following command:

docker --version

You should see the following output:

Docker version 20.10.5, build 55c4c88

Step 2 – Launch Tensorflow Container

Docker provides a Tensorflow container for building machine learning applications.

First, download the Tensorflow container using the following command:

docker pull tensorflow/tensorflow:latest

You should get the following output:

latest: Pulling from tensorflow/tensorflow
d519e2592276: Pull complete 
d22d2dfcfa9c: Pull complete 
b3afe92c540b: Pull complete 
c12ceea561ed: Pull complete 
1f0ffb4d2509: Pull complete 
961442e8e0e4: Pull complete 
0b2b6f75fc95: Pull complete 
e266fced02fa: Pull complete 
c29b15b084af: Pull complete 
5d43e8c7056a: Pull complete 
Digest: sha256:0118f3db64ddadf5d16f4b8d85ffb14228e194c0211c690562fb5dfd16fc86c0
Status: Downloaded newer image for tensorflow/tensorflow:latest

Next, create a Tensorflow container from the downloaded image with the following command:

docker run -it -p 8888:8888 tensorflow/tensorflow:latest

You will be redirected inside the Tensorflow container:

________                               _______________                
___  __/__________________________________  ____/__  /________      __
__  /  _  _ \_  __ \_  ___/  __ \_  ___/_  /_   __  /_  __ \_ | /| / /
_  /   /  __/  / / /(__  )/ /_/ /  /   _  __/   _  / / /_/ /_ |/ |/ / 
/_/    \___//_/ /_//____/ \____//_/    /_/      /_/  \____/____/|__/

WARNING: You are running this container as root, which can cause new files in
mounted volumes to be created as the root user on your host machine.

To avoid this, run the container by specifying your user's userid:

$ docker run -u $(id -u):$(id -g) args...


You can now write and run any application inside the container. You can exit from the container anytime using the following command:


Step 3 – Launch Tensorflow Jupyter Container

Docker also provides a Tensorflow container with Jupyter notebook that allows you to write and run code through the Jupyter notebook dashboard.

You can download and launch the Tensorflow Jupyter container with the following command:

docker run -it -p 8088:8088 tensorflow/tensorflow:latest-jupyter

You should get the following output:

latest-jupyter: Pulling from tensorflow/tensorflow
d519e2592276: Already exists 
d22d2dfcfa9c: Already exists 
b3afe92c540b: Already exists 
c12ceea561ed: Already exists 
1f0ffb4d2509: Already exists 
961442e8e0e4: Already exists 
0b2b6f75fc95: Already exists 
e266fced02fa: Already exists 
c29b15b084af: Already exists 
5d43e8c7056a: Already exists 
c09e41c80475: Pull complete 
4928d4fd53b4: Pull complete 
4f8c501e8020: Pull complete 
9a927eacde80: Pull complete 
cca85cdd242a: Pull complete 
c491a3ee7337: Pull complete 
70252b385326: Pull complete 
c385e49aff55: Pull complete 
32a1800a0df4: Pull complete 
56ac089c301a: Pull complete 
32b4fcc94634: Pull complete 
62fbf7c8b492: Pull complete 
a184bae0471c: Pull complete 
3138b3afe589: Pull complete 
322ff03a149a: Pull complete 
Digest: sha256:15ca1ea5083f1f9fcc2b006df4f1d51c3d0b6f2616fa14c12ff6dc7c4bc83588
Status: Downloaded newer image for tensorflow/tensorflow:latest-jupyter
[I 03:08:37.757 NotebookApp] Writing notebook server cookie secret to /root/.local/share/jupyter/runtime/notebook_cookie_secret
jupyter_http_over_ws extension initialized. Listening on /http_over_websocket
[I 03:08:38.106 NotebookApp] Serving notebooks from local directory: /tf
[I 03:08:38.107 NotebookApp] Jupyter Notebook 6.2.0 is running at:
[I 03:08:38.107 NotebookApp] http://40959756271a:8088/?token=2cbdd5bc2250270506f38954ed7f891a146cc71e50bc46fb
[I 03:08:38.108 NotebookApp]  or
[I 03:08:38.108 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 03:08:38.114 NotebookApp] 
    To access the notebook, open this file in a browser:
    Or copy and paste one of these URLs:

You can now access the Jupyter notebook using the URL http://your-server-ip:8088/?token=2cbdd5bc2250270506f38954ed7f891a146cc71e50bc46fb. You should see the following screen:



Congratulations! You have successfully installed Tensorflow with Docker on Ubuntu 20.04. You can now easily write and run a machine learning program with Tensorflow. Try it today on an Atlantic.Net VPS!