16 808
правок
(→Установка: очепятка) |
|||
(не показана 21 промежуточная версия 4 участников) | |||
Строка 2: | Строка 2: | ||
== Описание == | == Описание == | ||
[https://docker.com Docker] — программное обеспечение для запуска приложений в изолированной среде. С его помощью можно упаковать приложение со всем его окружением и зависимостями в контейнер и потом развернуть его на любой ОС Linux. Такой подход позволяет избежать конфликта используемых приложением библиотек с установленными в основной системе. | [https://docker.com Docker] — программное обеспечение для запуска приложений в изолированной среде. С его помощью можно упаковать приложение со всем его окружением и зависимостями в контейнер и потом развернуть его на любой ОС Linux. Такой подход позволяет избежать конфликта используемых приложением библиотек с установленными в основной системе. | ||
В новых релизах на базе Debian «bullseye» (wb-2304 и новее) места в корневом разделе стало меньше и докер больше поставить нельзя, решения: | |||
# Остаться на wb-2207 — докер будет без проблем работать на Wiren Board 6 и 7. | |||
# Расширить корневой раздел до 2 Гбайт по [[Enlarging_the_rootfs_partition|инструкции]]. | |||
С помощью docker-контейнеров распространяется много открытого ПО, например, [[Home Assistant]] и [https://www.openhab.org/ openHAB]. | С помощью docker-контейнеров распространяется много открытого ПО, например, [[Home Assistant]] и [https://www.openhab.org/ openHAB]. | ||
Строка 26: | Строка 30: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg | curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg | ||
</syntaxhighlight> | |||
Docker пока не поддерживает nftables, который заменил iptables в новом bullseye — поэтому, '''если у вас релиз [[wb-2304]] и новее''', надо выполнить по очереди: | |||
:<syntaxhighlight lang="bash"> | |||
apt install -y iptables | |||
update-alternatives --set iptables /usr/sbin/iptables-legacy | |||
update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 46: | Строка 57: | ||
# Откройте файл в редакторе: | # Откройте файл в редакторе: | ||
#:<syntaxhighlight lang="bash"> | #:<syntaxhighlight lang="bash"> | ||
nano /etc/docker/daemon.json | |||
</syntaxhighlight> | </syntaxhighlight> | ||
# Вставьте в него строки: | # Вставьте в него строки: | ||
#:<syntaxhighlight lang="js"> | #:<syntaxhighlight lang="js"> | ||
{ | { | ||
"data-root": "/mnt/data/.docker" | "data-root": "/mnt/data/.docker", | ||
"log-driver": "json-file", | |||
"log-opts": { | |||
"max-size": "10m", | |||
"max-file": "3" | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
# Сохраните и закройте файл. | # Сохраните и закройте файл: <kbd>Ctrl</kbd>+<kbd>S</kbd> и <kbd>Ctrl</kbd>+<kbd>X</kbd>. | ||
В параметре ''log-opts'' задаются ограничения на журналы контейнеров, [https://docs.docker.com/config/containers/logging/configure/ подробнее]. | |||
== Установка == | == Установка == | ||
После того, как мы указали, где будут | После того, как мы указали, где будут храниться контейнеры, устанавливаем сам docker: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
apt update && apt install docker-ce docker-ce-cli containerd.io | apt update && apt install docker-ce docker-ce-cli containerd.io | ||
Строка 67: | Строка 85: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Если в консоли появилась надпись <code>Hello from Docker!</code>, docker установлен и работает. | Если в консоли появилась надпись <code>Hello from Docker!</code>, docker установлен и работает. | ||
Иногда требуется перезагрузка командой: <syntaxhighlight lang="bash">reboot</syntaxhighlight> затем повторить проверку. | |||
== Полезные команды == | == Полезные команды == | ||
Строка 74: | Строка 93: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Ниже | Ниже вы найдёте использование основных команд. | ||
Получить образ: | Получить образ: | ||
Строка 105: | Строка 124: | ||
Запуск образа: | Запуск образа: | ||
<syntaxhighlight lang="console"> | <syntaxhighlight lang="console"> | ||
# | # docker run -it --name esphome 0401c33b2983 | ||
742dd9e812ea8ab37f0bcd9b4f6dda34d70de5ae92ddec6557a2f1a213ed859b | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Запущенный образ — это контейнер. | Запущенный образ — это контейнер. Чтобы контейнер запускался автоматически, добавьте параметр <code>--restart unless-stopped</code>, [https://docs.docker.com/config/containers/start-containers-automatically/ подробнее]. | ||
Если контейнер запущен с параметрами <code>-it</code>, то вы можете выйти из консоли без остановки контейнера, для этого нажмите по очереди сочетания клавиш <kbd>Ctrl</kbd>+<kbd>p</kbd> и <kbd>Ctrl</kbd>+<kbd>q</kbd>. Чтобы выйти из консоли и остановить контейнер, нажмите <kbd>Ctrl</kbd>+<kbd>c</kbd>. | |||
Список контейнеров со статусами: | Список контейнеров со статусами: | ||
Строка 115: | Строка 136: | ||
# docker ps -a | # docker ps -a | ||
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES | ||
742dd9e812ea 0401c33b2983 "/entrypoint.sh dash…" 19 seconds ago Up 18 seconds 6052/tcp esphome | |||
b87586003c09 hello-world "/hello" | b87586003c09 hello-world "/hello" 38 minutes ago Exited (0) 38 minutes ago admiring_curie | ||
</syntaxhighlight> | |||
Подключиться к запущенному контейнеру: | |||
<syntaxhighlight lang="bash"> | |||
docker attach esphome | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Остановка контейнера: | Остановка контейнера: | ||
<syntaxhighlight lang="console"> | <syntaxhighlight lang="console"> | ||
# docker stop | # docker stop esphome | ||
esphome | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Удалить остановленный контейнер: | Удалить остановленный контейнер: | ||
<syntaxhighlight lang="console"> | <syntaxhighlight lang="console"> | ||
# docker rm | # docker rm esphome | ||
esphome | |||
</syntaxhighlight> | </syntaxhighlight> | ||