Следуя инструкциям, я установил docker на Ubuntu 13.04 (и ядро 12.04 + 3.8), вытащил базовый контейнер и запустил внутри него оболочку. Он получил частный IP-адрес и может пропинговать свой шлюз по умолчанию, но не может подключиться ни к какому внешнему хосту, поэтому apt-get для меня не подходит.
У меня есть "net.ipv4.conf.all.forwarding = 1" в моем sysctl и у меня есть правила POSTROUTING в таблице iptables / nat.
Установщик докера забыл добавить некоторые правила или я что-то упустил?
Есть ли у вас правило MASQUERADE?
Можете ли вы попробовать запустить демон с docker -d -b testbr0
и повторить попытку?
Это создаст новый мост и настроит для него все правила iptables. .
Если это работает, это, вероятно, означает, что в какой-то момент произошло iptables -t nat -F
и правила nat для докера были потеряны. Вы можете либо воссоздать их вручную, либо, что проще, удалить Docker Bridge и перезапустить Docker:)