Docker: различия между версиями
(→Установка: очепятка) |
|||
(не показано 18 промежуточных версий 4 участников) | |||
Строка 2: | Строка 2: | ||
== Описание == | == Описание == | ||
[https://docker.com Docker] — программное обеспечение для запуска приложений в изолированной среде. С его помощью можно упаковать приложение со всем его окружением и зависимостями в контейнер и потом развернуть его на любой ОС Linux. Такой подход позволяет избежать конфликта используемых приложением библиотек с установленными в основной системе. | [https://docker.com Docker] — программное обеспечение для запуска приложений в изолированной среде. С его помощью можно упаковать приложение со всем его окружением и зависимостями в контейнер и потом развернуть его на любой ОС Linux. Такой подход позволяет избежать конфликта используемых приложением библиотек с установленными в основной системе. | ||
С помощью docker-контейнеров распространяется много открытого ПО, например, [[Home Assistant]] и [https://www.openhab.org/ openHAB]. | С помощью docker-контейнеров распространяется много открытого ПО, например, [[Home Assistant]] и [https://www.openhab.org/ openHAB]. | ||
Строка 30: | Строка 26: | ||
<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> | </syntaxhighlight> | ||
Строка 57: | Строка 46: | ||
# Откройте файл в редакторе: | # Откройте файл в редакторе: | ||
#:<syntaxhighlight lang="bash"> | #:<syntaxhighlight lang="bash"> | ||
mcedit /etc/docker/daemon.json | |||
</syntaxhighlight> | </syntaxhighlight> | ||
# Вставьте в него строки: | # Вставьте в него строки: | ||
#:<syntaxhighlight lang="js"> | #:<syntaxhighlight lang="js"> | ||
{ | { | ||
"data-root": "/mnt/data/.docker" | "data-root": "/mnt/data/.docker" | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
# Сохраните и закройте файл | # Сохраните и закройте файл. | ||
== Установка == | == Установка == | ||
После того, как мы указали, где будут | После того, как мы указали, где будут хранится контейнеры, устанавливаем сам 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 | ||
Строка 85: | Строка 67: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Если в консоли появилась надпись <code>Hello from Docker!</code>, docker установлен и работает. | Если в консоли появилась надпись <code>Hello from Docker!</code>, docker установлен и работает. | ||
== Полезные команды == | == Полезные команды == | ||
Строка 93: | Строка 74: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Ниже | Ниже мы показали использование основных команд. | ||
Получить образ: | Получить образ: | ||
Строка 124: | Строка 105: | ||
Запуск образа: | Запуск образа: | ||
<syntaxhighlight lang="console"> | <syntaxhighlight lang="console"> | ||
# docker run | # docker run --name esphome -d 0401c33b2983 | ||
742dd9e812ea8ab37f0bcd9b4f6dda34d70de5ae92ddec6557a2f1a213ed859b | 742dd9e812ea8ab37f0bcd9b4f6dda34d70de5ae92ddec6557a2f1a213ed859b | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Запущенный образ — это контейнер. Чтобы контейнер запускался автоматически, добавьте параметр <code>--restart unless-stopped</code>, [https://docs.docker.com/config/containers/start-containers-automatically/ подробнее]. | Запущенный образ — это контейнер. Чтобы контейнер запускался автоматически, добавьте параметр <code>--restart unless-stopped</code>, [https://docs.docker.com/config/containers/start-containers-automatically/ подробнее]. | ||
Список контейнеров со статусами: | Список контейнеров со статусами: | ||
Строка 138: | Строка 117: | ||
742dd9e812ea 0401c33b2983 "/entrypoint.sh dash…" 19 seconds ago Up 18 seconds 6052/tcp esphome | 742dd9e812ea 0401c33b2983 "/entrypoint.sh dash…" 19 seconds ago Up 18 seconds 6052/tcp esphome | ||
b87586003c09 hello-world "/hello" 38 minutes ago Exited (0) 38 minutes ago admiring_curie | b87586003c09 hello-world "/hello" 38 minutes ago Exited (0) 38 minutes ago admiring_curie | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Версия 12:18, 8 октября 2022
Описание
Docker — программное обеспечение для запуска приложений в изолированной среде. С его помощью можно упаковать приложение со всем его окружением и зависимостями в контейнер и потом развернуть его на любой ОС Linux. Такой подход позволяет избежать конфликта используемых приложением библиотек с установленными в основной системе.
С помощью docker-контейнеров распространяется много открытого ПО, например, Home Assistant и openHAB.
Подготовка к установке
Копируйте команды из инструкции, вставляйте их в консоль контроллера с помощью клавиш Shift+Insert и запускайте клавишей Enter. В случае ошибок, внимательно читайте вывод, там будут инструкции и подсказки.
Установите необходимые зависимости:
apt update && apt install ca-certificates curl gnupg lsb-release
Добавьте репозиторий с пакетами docker:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
Добавьте GPG ключ для репозитория:
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Предварительная настройка
Чтобы не потерять установленный софт и его данные, обновляйте ПО контроллера только через менеджер пакетов apt. Подробнее читайте в статье Программное обеспечение Wiren Board.
Встроенный флеш-накопитель контроллера разбит на разделы и для пользователя отведён самый большой из них, который монтируется в папку /mnt/data
. Нужно учесть эту особенность при установке программ, а также при обновлении прошивки контроллера.
Настройте симлинк для папки конфигурации:
mkdir /mnt/data/etc/docker && ln -s /mnt/data/etc/docker /etc/docker
Мы будем хранить образы на встроенном накопителе, если вам нужно больше места под образы — используйте внешнюю флешку.
Создайте папку для хранения образов:
mkdir /mnt/data/.docker
Укажите в файле настроек daemon.json созданную выше папку:
- Откройте файл в редакторе:
mcedit /etc/docker/daemon.json
- Вставьте в него строки:
{ "data-root": "/mnt/data/.docker" }
- Сохраните и закройте файл.
Установка
После того, как мы указали, где будут хранится контейнеры, устанавливаем сам docker:
apt update && apt install docker-ce docker-ce-cli containerd.io
Чтобы проверить, что всё работает — запустите контейнер hello-world
:
docker run hello-world
Если в консоли появилась надпись Hello from Docker!
, docker установлен и работает.
Полезные команды
Список всех доступных команд можно посмотреть во встроенной справке:
docker --help
Ниже мы показали использование основных команд.
Получить образ:
# docker pull esphome/esphome
Using default tag: latest
latest: Pulling from esphome/esphome
f98812e1a494: Pull complete
f20b799f735a: Pull complete
a3eebee895ee: Pull complete
d95c6fb39c81: Pull complete
4b80ed7a161f: Pull complete
cf110f754813: Pull complete
9c25c9407f5a: Pull complete
f8e529b4d0b5: Pull complete
59ec28d4b7f1: Pull complete
Digest: sha256:907ae118d77c3c63112d7eb09663d6567853df2549e45b9f60fa4803c0aafcdf
Status: Downloaded newer image for esphome/esphome:latest
docker.io/esphome/esphome:latest
Список локальныйх образов:
# docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
esphome/esphome latest 0401c33b2983 28 hours ago 219MB
hello-world latest c0218de6585d 12 months ago 8.95kB
Запуск образа:
# docker run --name esphome -d 0401c33b2983
742dd9e812ea8ab37f0bcd9b4f6dda34d70de5ae92ddec6557a2f1a213ed859b
Запущенный образ — это контейнер. Чтобы контейнер запускался автоматически, добавьте параметр --restart unless-stopped
, подробнее.
Список контейнеров со статусами:
# docker ps -a
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" 38 minutes ago Exited (0) 38 minutes ago admiring_curie
Остановка контейнера:
# docker stop esphome
esphome
Удалить остановленный контейнер:
# docker rm esphome
esphome
Удалить образ:
# docker rmi 0401c33b2983
Untagged: esphome/esphome:latest
Untagged: esphome/esphome@sha256:907ae118d77c3c63112d7eb09663d6567853df2549e45b9f60fa4803c0aafcdf
Deleted: sha256:0401c33b29832eda0d064c6e786af6171a8849e75e6c19c5ed9db217f471ef83
Deleted: sha256:e6704f3efee96502167917a51fbc6daa30293858fe8ba8f39d2ea0c41bc1fc8a
Deleted: sha256:1d931fa53fc03964ab7328e5eeae0f0dfacbdfac235a57b88eef9a64f929acb1
Deleted: sha256:b4e4d712f11193ed8f62f621c4144f1ff290472aec189709600dfc40360e7a9e
Deleted: sha256:0bf55d4ba3d1dbd430f1a44d83b0ee6569478b1718eb39387922043503fb86f8
Deleted: sha256:6aaea8978a285b4527f3728ea8aceb3aeb20ec590cf5fb277a01047386d50a49
Deleted: sha256:b9e65e0630bbd4c2afb6e02c136c97971c75f12b3483809187e5d7408bf8fecc
Deleted: sha256:a7e364f65210a627eae36ac800e7f49f90468607ab6d4e69a44fb42943dca6b3
Deleted: sha256:97192e30a0c129d031979b18fe321b22e2bca286597c02d209ac93355deb64cd
Deleted: sha256:3d92533735a9bf060b543dec10eefdbe98288abc43cfb671bb2b74dbe0f5fa88