Installing Docker on various systems

descr

using the official docker repo, not debian/ubuntu packages nor EPEL

requirements

    wget https://raw.githubusercontent.com/docker/docker/master/contrib/check-config.sh
    chmod +x check-config.sh

# against /proc/config.gz
    ./check-config.sh

# against specific kernel config file
ls -lF /boot/config
./check-config.sh /boot/config

install

debian / ubuntu

make sure there’s no distro package

dpkg -l | grep docker # empty
#apt purge docker docker-engine docker.io

prepare the repository

apt update
apt install ca-certificates curl lsb-release bridge-utils
# ifupdown
# nftables

dpkg -l | grep -e 'gpg|gnupg'
#apt purge gnupg gpg gpgv
apt install gnupg1

cd /usr/share/keyrings/

# ubuntu asc == debian asc
#curl -fsSL https://download.docker.com/linux/ubuntu/gpg > docker-archive-keyring.gpg.asc
curl -fsSL https://download.docker.com/linux/debian/gpg > docker-archive-keyring.gpg.asc

cat docker-archive-keyring.gpg.asc | gpg1 --dearmor -o docker-archive-keyring.gpg

ls -lF /etc/apt/sources.list.d/docker.list # no exist
# ubuntu
cat > /etc/apt/sources.list.d/docker.list <<EOF
deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu `lsb_release -cs` stable
EOF

# debian
cat > /etc/apt/sources.list.d/docker.list <<EOF
deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian `lsb_release -cs` stable
EOF

and proceed with the installation

apt update
apt install docker-ce
# incl. iptables
# incl. containerd.io
# incl. docker-ce-cli

slackware

    slackpkg search iptables
    slackpkg search git-2
    slackpkg search procps-ng
    slackpkg search xz
    ls -lF /proc/cgroups

grab the latest Docker CE release as binaries

    rel=24.0.7

    wget https://download.docker.com/linux/static/stable/x86_64/docker-$rel.tgz
    tar xzf docker-$rel.tgz
    ls -lF /usr/local/bin/
    cp -i docker/* /usr/local/bin/

note it is also available on github as release tag.

    #git clone https://github.com/docker/docker-ce.git

rhel/centos

ls -al /etc/yum.repos.d/
rpm -qa | grep -i docker

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

post-install

# debian
update-alternatives --config iptables
update-alternatives --config ip6tables
# ==> legacy

# debian
grep docker /etc/group
# docker:x:997:
# bookworm: docker:x:996:

# slackware
    groupadd -g 331 docker

make the docker commands available to some user

    usermod -aG docker OPERATOR

note - as user you might run this command to refresh group attribution on a UNIX system

    newgrp docker

ready to go

see host

additional notes

and if you also need Compose

git clone https://github.com/docker/compose.git
cd compose/
pip install -U -r requirements.txt
python setup.py install

clean-up

dpkg --purge docker-ce
apt autoremove --purge

resources

download

https://download.docker.com/linux/static/stable/x86_64/

https://github.com/docker/docker-ce/tags

req

https://docs.docker.com/engine/installation/linux/docker-ce/binaries/#prerequisites

install

https://docs.docker.com/engine/install/

https://docs.docker.com/engine/install/binaries/

https://docs.docker.com/engine/install/ubuntu/

https://docs.docker.com/install/linux/docker-ce/ubuntu/

https://docs.docker.com/engine/installation/linux/docker-ce/centos/#install-using-the-repository

post-install

https://docs.docker.com/engine/install/linux-postinstall/


HOME | GUIDES | LECTURES | LAB | SMTP HEALTH | HTML5 | CONTACT
Copyright © 2024 Pierre-Philipp Braun