Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
howto:sysadmin:lxd [2024/05/14 02:12] ryzhikov [LXD] |
howto:sysadmin:lxd [2024/12/21 03:57] (текущий) |
||
|---|---|---|---|
| Строка 34: | Строка 34: | ||
| type: disk | type: disk | ||
| </file> | </file> | ||
| + | |||
| + | |||
| + | ===== Проблемы с Docker ===== | ||
| + | Docker перезаписывает правила фаервола (баг https://github.com/docker/for-linux/issues/103, который разработчики пока не починили). После перезагрузки новые правила фаервола заблокировали связь контейнеров LXD. | ||
| + | |||
| + | Решение — самостоятельно добавить правила фаервола, разрешающие общение контейнеров LXD: | ||
| + | sudo iptables -I DOCKER-USER -i lxdbr0 -j ACCEPT -m comment --comment "generated for LXD network lxdbr0" | ||
| + | sudo iptables -I DOCKER-USER -o lxdbr0 -j ACCEPT -m comment --comment "generated for LXD network lxdbr0" | ||
| + | |||
| + | |||
| + | Автоматическое добавление правил в хуке на ifup может не работать, поскольку чейны DOCKER могут еще не быть созданы к этому моменту. | ||
| + | |||
| + | Поэтому создаем свой сервис, который будет стартовать после docker и добавлять нужные правила: | ||
| + | |||
| + | <file sh /usr/local/bin/post-docker.sh> | ||
| + | |||
| + | #!/usr/bin/env bash | ||
| + | |||
| + | date > /var/log/post-docker-timestamp | ||
| + | iptables -I DOCKER-USER -i lxdbr0 -j ACCEPT -m comment --comment "generated for LXD network lxdbr0" | ||
| + | iptables -I DOCKER-USER -o lxdbr0 -j ACCEPT -m comment --comment "generated for LXD network lxdbr0" | ||
| + | </file> | ||
| + | |||
| + | <file ini /etc/systemd/system/postdocker.service> | ||
| + | |||
| + | [Unit] | ||
| + | Description=Post Docker | ||
| + | After=docker.service | ||
| + | BindsTo=docker.service | ||
| + | ReloadPropagatedFrom=docker.service | ||
| + | |||
| + | [Service] | ||
| + | Type=oneshot | ||
| + | ExecStart=/usr/local/bin/post-docker.sh | ||
| + | ExecReload=/usr/local/bin/post-docker.sh | ||
| + | RemainAfterExit=yes | ||
| + | |||
| + | [Install] | ||
| + | WantedBy=multi-user.target | ||
| + | </file> | ||
| + | |||
| + | |||
| + | chmod +x /usr/local/bin/post-docker.sh | ||
| + | systemctl daemon-reload | ||
| + | systemctl enable postdocker.service | ||
| + | |||