Перед установкой Docker убедитесь, что ваша система Debian обновлена, с помощью следующей команды:
sudo apt update && sudo apt upgrade -y
Если получите ошибку
sudo: command not found
То необходимо выполнить команду:
apt-get install sudo -y
Установка Docker на Debian 12
После обновления вашей системы установите необходимые пакеты, чтобы apt мог использовать репозиторий по протоколу HTTPS:
sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg2 -y
Затем добавьте официальный GPG-ключ Docker:
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
Добавьте репозиторий Docker в APT sources:
echo "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list
Обновите индекс вашего пакета и установите Docker CE (Community Edition):
sudo apt update && sudo apt install docker-ce -y
Чтобы убедиться, что Docker запускается при загрузке, используйте следующую команду:
sudo systemctl enable docker
Проверьте установку Docker, запустив образ hello-world:
sudo docker run hello-world
Если, Docker установлен правильно, то вывод должен получиться таким же:
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
c1ec31eb5944: Pull complete
Digest: sha256:94323f3e5e09a8b9515d74337010375a456c909543e1ff1538f5116d38ab3989
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
Установка Docker Compose в Debian 12
Docker Compose — это инструмент для определения и запуска многоконтейнерных приложений Docker. Чтобы установить Docker Compose, нужно загрузить последнюю версию из официального репозитория GitHub.
Самый простой способ установки, это установить следующие пакеты:
sudo apt install docker-ce-cli containerd.io docker-compose-plugin -y
В случае, если вам необходим самый последний релиз, то его можно установить вручную, загрузив с GitHub.
Установка Docker Compose из GitHub
Для этой операции в вашей системе должны быть установлены curl и wget. И, конечно же, вам нужен доступ к Терминалу как пользователю с правами sudo.
sudo apt update
sudo apt install -y curl wget
После установки curl загрузите последнюю версию Compose на свой компьютер с Linux.
curl -s https://api.github.com/repos/docker/compose/releases/latest | grep browser_download_url | grep docker-compose-linux-x86_64 | cut -d '"' -f 4 | wget -qi -
Сделайте двоичный файл исполняемым.
chmod +x docker-compose-linux-x86_64
Переместите файл по вашему ПУТИ.
sudo mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
Подтвердите версию.
$ docker-compose version
Docker Compose version v2.28.1
Добавить пользователя в группу docker:
sudo usermod -aG docker $USER
newgrp docker
Настройка завершения работы оболочки docker-compose
Compose имеет завершение команды для оболочек bash и zsh.
Для пользователей Bash
Поместите сценарий завершения в /etc/bash_completion.d
/.
sudo mkdir -p /etc/bash_completion.d/
sudo curl -L https://raw.githubusercontent.com/docker/compose/master/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose
Создайте исходный файл или повторно войдите в систему, чтобы воспользоваться функцией завершения.
echo "source /etc/bash_completion.d/docker-compose"|tee -a ~/.bashrc
source /etc/bash_completion.d/docker-compose
Для пользователей Zsh
Загрузите сценарий завершения в свой ~/.zsh/completion/
mkdir -p ~/.zsh/completion
curl -L https://raw.githubusercontent.com/docker/compose/master/contrib/completion/zsh/_docker-compose > ~/.zsh/completion/_docker-compose
Включите каталог в свой, $fpath
добавив в~/.zshrc
:
$ vim ~/.zshrc||nano ~/.zshrc
fpath=(~/.zsh/completion $fpath)
Убедитесь, что compinit
он загружен, или сделайте это, добавив в ~/.zshrc
:
autoload -Uz compinit && compinit -i
Затем перезагрузите свою оболочку:
exec $SHELL -l
Протестируйте установку Docker Compose
Наше подробное руководство посвящено управлению контейнерами Docker с помощью Docker Compose
Создайте тестовый файл Docker Compose.
vim docker-compose.yml
Добавьте в файл приведенные ниже данные.
services:
web:
image: nginx:latest
ports:
- "8080:80"
links:
- php
php:
image: php:8-fpm
Запустите сервисные контейнеры.
$ docker-compose up -d
[+] Running 18/18
✔ php Pulled 20.9s
✔ 01c187ab622c Pull complete 1.2s
✔ 4382a8829fff Pull complete 15.3s
✔ 43046b340e34 Pull complete 15.3s
✔ 41722365abab Pull complete 15.5s
✔ a52941633aa9 Pull complete 15.5s
✔ 930f8db3b95e Pull complete 18.9s
✔ f32aed4faf2d Pull complete 18.9s
✔ 499f39c692f7 Pull complete 18.9s
✔ add8a6605e0d Pull complete 19.0s
✔ web Pulled 6.6s
✔ 2cc3ae149d28 Already exists 0.0s
✔ 1018f2b8dba8 Pull complete 4.6s
✔ b831e78d8e20 Pull complete 4.7s
✔ 3ab22521e919 Pull complete 4.7s
✔ 5112bf42775b Pull complete 4.7s
✔ cbdaf9e4ee2d Pull complete 4.7s
✔ a06b6fd631e8 Pull complete 4.7s
[+] Running 3/3
✔ Network root_default Created 0.1s
✔ Container root-php-1 Started 0.7s
✔ Container root-web-1 Started 0.8s
Показать запущенные контейнеры
$ docker-compose ps
Name Command State Ports
------------------------------------------------------------------------------------------
root_php_1 docker-php-entrypoint php-fpm Up 9000/tcp
root_web_1 /docker-entrypoint.sh ngin ... Up 0.0.0.0:8080->80/tcp,:::8080->80/tcp
Уничтожать контейнеры
$ docker-compose stop
Stopping root_web_1 ... done
Stopping root_php_1 ... done
$ docker-compose rm -f
Going to remove root_web_1, root_php_1
Removing root_web_1 ... done
Removing root_php_1 ... done
Установка Portainer на Debian 12
Теперь, когда Docker запущен, установим Portainer. Сначала создайте том, который сервер Portainer будет использовать для хранения своей базы данных:
docker volume create portainer_data
Затем загрузите и установите серверный контейнер Portainer:
docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
Сервер Portainer теперь установлен. Вы можете проверить, запущен ли контейнер сервера Portainer, выполнив команду docker ps
.
Для входа в систему используем адрес:
https://localhost:9443 или https://IP адрес сервера:9443
Подробнее про установку Portainer можно прочитать на официальном сайте.