Docker

Instalacja Dockera niezależnie od rodzaju maszyny jest jednakowa .

Aby pobrać i uruchomić skrypt należy wykonać poniższe polecenia.

Przechodzimy do katalogu /opt

cd /opt

Pobieramy skrypt

sudo wget -O install_docker.sh http://arkplan.eu/files/ark-gis/install_docker.txt

Nadajemy uprawnienia do wykonywania

sudo chmod 777 install_docker.sh

Uruchamiamy instalację

./install_docker.sh

Poniżej znajduje się z treść skryptu instalacyjnego.

#!/bin/bash
##
# Instalacja Docker - wykonać jako użytkownik z uprawnieniami sudo lub root
##
set -e
sudo apt update
sudo apt install apt-transport-https ca-certificates curl gnupg2 lsb-release -y

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/$(grep -oP '(?<=^ID=).+' /etc/os-release | tr -d '"')/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/$(grep -oP '(?<=^ID=).+' /etc/os-release | tr -d '"') \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y

# Dodanie sterownika do drivera slirp4netns
echo "br_netfilter" | sudo tee /etc/modules-load.d/br_netfilter.conf

# Dodanie katalogu na pliki konfiguracyjne dockera
sudo mkdir -p /opt/docker
sudo chown www-data:www-data /opt/docker

# Dodanie uprawnień do journalctl
sudo usermod -aG systemd-journal www-data

# ROOTLESS
sudo apt install dbus-user-session fuse-overlayfs uidmap docker-ce-rootless-extras -y
sudo apt autoremove -y
sudo modprobe overlay permit_mounts_in_userns=1
sudo sh -c 'echo "www-data:100000:65536" >> /etc/subuid'
sudo sh -c 'echo "www-data:100000:65536" >> /etc/subgid'
sudo sh -c 'echo "net.ipv4.ip_unprivileged_port_start=0" > /etc/sysctl.d/99-rootless.conf'
sudo sh -c 'echo "net.ipv4.ping_group_range=0 2147483647" > /etc/sysctl.d/99-rootless.conf'
sudo sysctl --system

ROOTLESS

W związku z tym, że docker powinien działać w trybie ROOTLESS, należy zainstalować jeszcze jego obsługę.

Pamiętać należy, że ten fragment wykonujemy będąc fizycznie zalogowanym na koncie użytkownika www-data (nie wystarczy su www-data).

Podobnie jak wcześniej pobieramy skrypt

sudo wget -O install_docker_rootless.sh http://arkplan.eu/files/ark-gis/install_docker_rootless.txt

Nadajemy uprawnienia do wykonywania

sudo chmod 777 install_docker_rootless.sh

Uruchamiamy instalację

./install_docker_rootless.sh

Poniżej znajduje się z treść skryptu instalacyjnego.


#!/bin/bash

Instalacja Docker - wykonać jako użytkownik www-data

set -e

ROOTLESS

dockerd-rootless-setuptool.sh install echo "export PATH=$HOME/bin:$PATH export DOCKER_HOST=unix:///run/user/$(id -u www-data)/docker.sock" >> $HOME/.bashrc

mkdir -p ~/.config/systemd/user/docker.service.d/ echo "[Service] Environment="DOCKERD_ROOTLESS_ROOTLESSKIT_NET=slirp4netns" Environment="DOCKERD_ROOTLESS_ROOTLESSKIT_PORT_DRIVER=builtin" ExecStart= ExecStart=/usr/bin/dockerd-rootless.sh -H unix:///run/user/33/docker.sock" > ~/.config/systemd/user/docker.service.d/override.conf

mkdir -p ~/.config/docker echo "{ "userland-proxy": false }" > ~/.config/docker/daemon.json

systemctl --user enable docker loginctl enable-linger $(id -un www-data) docker context use rootless