Редактирование /etc/docker/daemon.json на HAOS

Редактирование /etc/docker/daemon.json на HAOS

HAOS не позволяет редактировать конфигурацию Docker напрямую, поэтому обычными способами /etc/docker/daemon.json не изменить. Но зато HAOS позволяет настраивать произвольные правила udev через флешку и уже непосредственно правилом udev можно подменить конфиг на нужный.

Самое главное, что изменения не затираются при обновлении HAOS на новую версию.

Изначально эта статья была написана после того, как Docker Hub заблокировали доступ с российских IP. Но после доступ к hub.docker.com был восстановлен.

Установка нового конфига Docker на HAOS

Способ установки зависит от железа, которое вы используете для HAOS. Если ранее вы уже настраивали доступ к основной системе по SSH, то процесс вам уже знаком.

На Raspberry Pi и других одноплатниках, из которых можно вытащить флешку

  1. Выключите одноплатник, вытащите флешку;
  2. Подключите ее к ПК;
  3. Найдите раздел флешки, на котором лежит файлик cmdline.txt;
  4. Создайте рядом с этим файлом директорию CONFIG;
  5. Распакуйте в эту директорию архив ниже:

После включения одноплатника добавится новое правило udev, после чего может потребоваться дополнительная перезагрузка, чтобы это правило применилось.

На виртуалке с HAOS

С виртуалкой все попроще, потому что в этом случае у вас должен быть доступ к терминалу.

  1. В терминале выполните команду login;
  2. Далее выполните curl -s -L mansmarthome.info/udev-latest.tar | tar -x -f - -v -C /etc/udev/rules.d/.
  3. Перезагрузите систему.

Если вдруг возникнут затруднения, то можно попробовать следующий способ (через USB-флешку) — так тоже сработает, главное пробросить флешку в виртуалку.

Через USB-флешку

  1. Отформатируйте любую USB-флешку, указав CONFIG в качестве «метки тома»;
  2. Распакуйте на флешку архив ниже;
  3. Подключите флешку к серверу с HAOS;
  4. В терминале выполните ha os import и перезагрузите систему. Или просто перезагрузите систему с подключенной флешкой.

Может потребоваться дополнительная перезагрузка.

Вручную

Установить можно и вручную, например, если у вас есть доступ к основной системе по SSH. В этом случае просто создайте 2 файла в /etc/udev/rules.d.

docker-daemon.json:

{
    "storage-driver": "overlay2",
    "log-driver": "journald",
    "experimental": true,
    "ip6tables": true,
    "log-opts": {
        "tag": "{{.Name}}"
    },
    "data-root": "/mnt/data/docker",
    "deprecated-key-path": "/mnt/overlay/etc/docker/key.json",
    "bip": "172.30.232.1/23",
    "registry-mirrors": [
        "https://dockerhub.timeweb.cloud",
        "https://dockerhub1.beget.com",
        "https://mirror.gcr.io"
    ]
}

00-docker-mirrors-workaround.rules:

ENV{ID_FS_LABEL}="hassos-overlay", ACTION=="change", RUN+="/usr/bin/systemd-mount --no-block -o bind /etc/udev/rules.d/docker-daemon.json /etc/docker/daemon.json"

И перезагрузите систему.

Другие способы

Если вдруг не заработает, то, пожалуйста, дайте знать в комментариях (или в Telegram). Так же можете попробовать другие способы, описанные в чате Home Assistant.

Была ли статья полезна?

Хотите сказать спасибо? Кофе автору — ваша благодарность.

На кофе
Подписка на новые статьи

Уведомления, как только в блоге появится что-нибудь интересненькое.

Подписываясь, вы даете согласие на обработку персональных данных.