Назад | Перейти на главную страницу

Ошибка Docker iptables после обновления системы

После недавнего запуска pacman -Syu, затем установив несколько несвязанных пакетов на компьютер под управлением Arch Linux, открыв порты нового контейнера с помощью --publish выдает странную ошибку.

Вот пример возникшей ошибки:

docker: Error response from daemon: driver failed programming external connectivity on endpoint bsp-devkit (7a47f30eaa0e104d6b9a7b75003a768e734182e20e057e51d33cca23da7dbf02):  (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 10809 -j DNAT --to-destination 172.17.0.2:10809 ! -i docker0: iptables v1.8.2 (legacy): unknown option "--dport"
Try `iptables -h' or 'iptables --help' for more information.
 (exit status 2)).

Вот команда запуска Docker, которая не работает таким образом:

docker run \
 --publish=2223:22 \
 --publish=8000:8000 \
 --publish=69:69/udp --publish=10809:10809 \
 --detach=true --privileged \
 --hostname=bsp-devkit --name=bsp-devkit \
 -v /sys/fs/cgroup:/sys/fs/cgroup:ro \
 -v $MIRRORDIR:/home/devel/mirror \
 -it $IMAGE

Для меня это очень странно, потому что это похоже на регресс, вызванный новой версией iptables, но в версии iptables после нее написано «устаревшее» (так почему эта версия должна быть обновлена ​​с критическим изменением?), И я также не знаю. Я не нашел никого в сети, кто спрашивал бы об этой конкретной ошибке, так что я, должно быть, что-то очень сильно испортил.

Пакеты, которые я установил, включали шестнадцатеричный редактор Bless, но я не помню, устанавливал ли я что-нибудь еще.

Дополнительные примечания - Я никогда не настраивал брандмауэр в этой системе - Этот компьютер подключен к VPN, но раньше это не было проблемой

Обновления:

Мне удалось исправить это до сих пор, понизив iptables и перезапустив систему (перезапуска демона Docker недостаточно)

В моем случае старая версия iptables находилась в кеше pacman, поэтому я мог перейти на более раннюю версию со следующим:

pacman -U /var/cache/pacman/pkg/iptables-1:1.8.0-1-x86_64.pkg.tar.xz

Я все еще хотел бы знать, почему это произошло и почему я не видел ошибки где-либо еще, поэтому, если кто-то прокомментирует какую-либо информацию здесь, я обновлю свой ответ.