Docker Installation: Difference between revisions

From WilliamsNet Wiki
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
Tag: visualeditor
 
(20 intermediate revisions by 2 users not shown)
Line 1: Line 1:
__NOTOC__
= Docker Community Edition install =
This installs the official Docker distrubution from the '''community edition''' repository.
This installs the official Docker distrubution from the '''community edition''' repository.


__NOTOC__
== Fedora ==
The docker team officially supports Fedora, but the rapid pace of Fedora releases (every 6 months) and the changing cgroups support (fedora has moved to v2 but docker is still on v1) has led to delays with the Fedora 33 release of docker-ce.  I expect this will happen again for future releases, so the instructions below accommodate this possibility.
 
=== Prerequisites ===
* [[Basic Fedora 31+ Installation]]
* [[CUDA + NVIDIA drivers]] (if GPU is present)
 
=== Set up Docker-CE Repository ===
sudo dnf config-manager --add-repo <nowiki>https://download.docker.com/linux/centos/docker-ce.repo</nowiki>
dnf list docker\*
 
If you don't see the '''docker-ce*''' packages in the listing, you need to enable the test repository (CAUTION):
sudo dnf config-manager --set-enabled docker-ce-test
 
Then you install the packages
sudo dnf install docker-ce docker-ce-cli containerd.io
 
== CentOS ==
== CentOS ==
( originally from https://docs.docker.com/engine/installation/linux/centos/ )
( originally from https://docs.docker.com/engine/installation/linux/centos/ )
Line 11: Line 29:
=== Set up Docker-CE Repository ===
=== Set up Docker-CE Repository ===
  sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  sudo yum-config-manager --add-repo <nowiki>https://download.docker.com/linux/centos/docker-ce.repo</nowiki>


=== Install Docker ===
=== Install Docker ===
  sudo yum install -y docker-ce
  sudo yum install -y docker-ce docker-ce-cli containerd.io


== Debian ==
== Debian ==
Line 20: Line 38:


=== Prerequisites ===
=== Prerequisites ===
* [[Basic Debian 10 Installation]]
* [[Basic Debian Installation]]


=== Set up Docker-CE Repository ===
=== Set up Docker-CE Repository ===
  sudo apt-get install -y apt-transport-https ca-certificates curl gnupg2 software-properties-common
  sudo apt-get install -y apt-transport-https ca-certificates curl gnupg2 software-properties-common
  curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
  curl -fsSL <nowiki>https://download.docker.com/linux/debian/gpg</nowiki> | sudo apt-key add -
  sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
  sudo add-apt-repository "deb [arch=amd64] <nowiki>https://download.docker.com/linux/debian</nowiki> $(lsb_release -cs) stable"
  sudo apt-get update
  sudo apt-get update


Line 33: Line 51:
== Finishing the Install ==
== Finishing the Install ==
Make sure the docker daemon is running and set up to start automatically (should already be done by the package install):
Make sure the docker daemon is running and set up to start automatically (should already be done by the package install):
sudo systemctl start docker
  sudo systemctl enable --now docker
  sudo systemctl enable docker


Test installation
Test installation
Line 51: Line 68:
  scp -r aslan:.docker ~  
  scp -r aslan:.docker ~  


=== GPU Nodes ===
= GPU Nodes =
On GPU-enabled nodes, install the nvidia runtime.
On GPU-enabled nodes, install the [[NVIDIA Docker Runtime]].
 
(originally from https://github.com/NVIDIA/nvidia-docker)
<pre>sudo yum-config-manager --add-repo https://nvidia.github.io/nvidia-docker/centos7/x86_64/nvidia-docker.repo
sudo yum install -y nvidia-docker2
sudo systemctl restart docker </pre>
 
Test nvidia-smi with the latest official CUDA image
docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi
 
Make the nvidia runtime default
* add entry to /etc/docker/daemon.json
* note that this gets reset when docker updates
* resulting daemon.json file looks like this:
 
<pre>{
    "runtimes": {
        "nvidia": {
            "path": "/usr/bin/nvidia-container-runtime",
            "runtimeArgs": []
        }
    },
    "default-runtime": "nvidia"
} </pre>
 
... or copy from aslan
scp aslan:/etc/docker/daemon.json /etc/docker
 
Reload the configuration to enable the change
sudo systemctl restart docker
 
Test the GPU performance using a simple NVIDIA GPU Cloud container with the CUDA nbody sample program
docker run -it --rm nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -benchmark -fp64

Latest revision as of 12:24, 17 October 2021

Docker Community Edition install[edit]

This installs the official Docker distrubution from the community edition repository.

Fedora[edit]

The docker team officially supports Fedora, but the rapid pace of Fedora releases (every 6 months) and the changing cgroups support (fedora has moved to v2 but docker is still on v1) has led to delays with the Fedora 33 release of docker-ce. I expect this will happen again for future releases, so the instructions below accommodate this possibility.

Prerequisites[edit]

Set up Docker-CE Repository[edit]

sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
dnf list docker\*

If you don't see the docker-ce* packages in the listing, you need to enable the test repository (CAUTION):

sudo dnf config-manager --set-enabled docker-ce-test

Then you install the packages

sudo dnf install docker-ce docker-ce-cli containerd.io

CentOS[edit]

( originally from https://docs.docker.com/engine/installation/linux/centos/ )

Prerequisites[edit]

Set up Docker-CE Repository[edit]

sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

Install Docker[edit]

sudo yum install -y docker-ce docker-ce-cli containerd.io

Debian[edit]

( originally from https://docs.docker.com/engine/installation/linux/debian/ )

Prerequisites[edit]

Set up Docker-CE Repository[edit]

sudo apt-get install -y apt-transport-https ca-certificates curl gnupg2 software-properties-common
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
sudo apt-get update

Install Docker[edit]

sudo apt-get install -y docker-ce docker-ce-cli containerd.io

Finishing the Install[edit]

Make sure the docker daemon is running and set up to start automatically (should already be done by the package install):

sudo systemctl enable --now docker

Test installation

sudo docker run --rm hello-world
sudo docker image rm -f hello-world

Enable standard user access to docker commands (requires $USER to log out and back in to activate)

sudo groupadd docker
sudo usermod -aG docker $USER

In order to access the local repositories, we need to copy the certs into the local docker config

sudo scp -r aslan:/etc/docker/certs.d /etc/docker

Copy over the .docker directory from aslan for both root and user(s) to get login credentials

sudo scp -r aslan:.docker /root
scp -r aslan:.docker ~ 

GPU Nodes[edit]

On GPU-enabled nodes, install the NVIDIA Docker Runtime.