Docker Installation: Difference between revisions

From WilliamsNet Wiki
Jump to navigation Jump to search
(Created page with "This installs the official Docker distrubution from the '''community edition''' repository. __NOTOC__ == CentOS == ( originally from https://docs.docker.com/engine/installati...")
 
mNo edit summary
Tag: visualeditor
 
(21 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 45: Line 62:


In order to access the local repositories, we need to copy the certs into the local docker config
In order to access the local repositories, we need to copy the certs into the local docker config
  scp -r aslan:/etc/docker/certs.d /etc/docker
  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
Copy over the .docker directory from aslan for both root and user(s) to get login credentials
<pre>sudo scp -r aslan:.docker /root
sudo scp -r aslan:.docker /root
scp -r aslan:.docker ~ </pre>
scp -r aslan:.docker ~  
 
=== GPU Nodes ===
On GPU-enabled nodes, install the nvidia 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
= GPU Nodes =
docker run -it --rm nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -benchmark -fp64
On GPU-enabled nodes, install the [[NVIDIA Docker Runtime]].

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.