Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
howto:sysadmin:lxd [2024/05/14 02:11] ryzhikov |
howto:sysadmin:lxd [2024/12/21 03:57] (текущий) |
||
---|---|---|---|
Строка 7: | Строка 7: | ||
# Сделать снапшот контейнера: | # Сделать снапшот контейнера: | ||
lxc snapshot <containername> <snapshotname> | lxc snapshot <containername> <snapshotname> | ||
+ | |||
+ | # Стартовать контейнер: | ||
+ | lxc start <containername> | ||
</code> | </code> | ||
Строка 31: | Строка 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 | ||
+ |