Инсталляция / 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]