После недавнего запуска 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, но раньше это не было проблемой
Обновления:
v1.8.0
из кеша pacman не исправляет ...Мне удалось исправить это до сих пор, понизив iptables и перезапустив систему (перезапуска демона Docker недостаточно)
В моем случае старая версия iptables находилась в кеше pacman, поэтому я мог перейти на более раннюю версию со следующим:
pacman -U /var/cache/pacman/pkg/iptables-1:1.8.0-1-x86_64.pkg.tar.xz
Я все еще хотел бы знать, почему это произошло и почему я не видел ошибки где-либо еще, поэтому, если кто-то прокомментирует какую-либо информацию здесь, я обновлю свой ответ.