Инсталляция / Upgrade Docker в Ubuntu 22.04

Делаю:
2024.03.23


Инсталляция Docker


$ mkdir ~/tmp
$ cd ~/tmp


$ vi install-docker-and-docker-compose.sh


#!/bin/bash

### Install Docker

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


### Install Docker-Compose

LATEST_VERSION=$(curl --silent "https://api.github.com/repos/docker/compose/releases/latest" | grep '"tag_name"' | sed -E 's/.*"([^"]+)".*/\1/')

sudo curl -L "https://github.com/docker/compose/releases/download/${LATEST_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose


$ chmod +x ./install-docker-and-docker-compose.sh
$ sudo ./install-docker-and-docker-compose.sh


$ docker -v
Docker version 26.0.0, build 2ae903e

$ docker-compose --version
Docker Compose version v2.26.0


Предоставить пользователю права для работы с docker

// Добавить текущего пользоателя в группу для работы с docker
$ sudo usermod -aG docker ${USER}


в группе docker должен появиться этот пользователь

$ cat /etc/group | grep docker
docker:x:999:marley


Перелогиниваемся, иначе не будет работать

$ logout

Лучше даже сделать reboot.

$ sudo reboot


// Но можно и
$ newgrp docker


(При необходимости!) Изменить каталог по умолчанию для хранения контейнеров и имиджей

Делаю:
13.08.2022


$ sudo mkdir -p /etc/systemd/system/docker.service.d
$ sudo vi /etc/systemd/system/docker.service.d/docker-storage.conf


[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// --data-root="/mnt/dsk1/docker"


# systemctl daemon-reload
# systemctl restart docker
# ps auxwww | grep docker
root       14893  0.7  0.4 1382816 77408 ?       Ssl  23:49   0:00 /usr/bin/dockerd -H fd:// --data-root=/mnt/dsk1/docker
root       15005  0.0  0.0   9048   656 pts/8    S+   23:49   0:00 grep --color=auto docker


Разрешить работы с определенными registry по HTTP


**Текст ошибки:**
http: server gave HTTP response to HTTPS client


$ sudo vi /etc/docker/daemon.json


{
    "insecure-registries": ["localhost:5000"]
}


$ sudo systemctl daemon-reload
$ sudo systemctl restart docker


$ docker info
***
Insecure Registries:
localhost:5000
127.0.0.0/8


Отключить автозапуск контейнеров docker-compose

// We can stop specific container by going to the specific directory and then running the following command
$ docker-compose down


// To prevent a specific container from auto starting when a system is powered on
$ docker update --restart=no [container id]