Какова лучшая практика docker + ufw под Ubuntu?
Я только что попробовал Docker. Это круто, но, похоже, не очень хорошо работает с UFW. По умолчанию Docker немного манипулирует iptables. Результат не ошибка, но не то, что я ожидал. Для более подробной информации вы можете прочитатьОпасности UFW + Докер
Моя цель - создать такую систему, как
Host (running ufw) -> docker container 1 - nginx (as a reverse proxy)
-> docker container 2 - node web 1
-> docker container 3 - node web 2
-> .......
Я хочу управлять входящим трафиком (например, ограничить доступ) через ufw, поэтому я не хочу, чтобы docker касался моих iptables. Вот мой тест
Среда:
недавно установленная Ubuntu 14.04 (ядро: 3.13.0-53)Докер 1.6.2Переадресация UFW включена. (Включить переадресацию UFW )--iptables=false
был добавлен в демон Docker.Первая попытка
docker run --name ghost -v /home/xxxx/ghost_content:/var/lib/ghost -d ghost
docker run --name nginx -p 80:80 -v /home/xxxx/nginx_site_enable:/etc/nginx/conf.d:ro --link ghost:ghost -d nginx
Неудачно. Первая команда в порядке, но вторая команда выдаст ошибку
Error response from daemon: Cannot start container
Вторая попытка
Тогда я нашел это:невозможно связать контейнеры с --iptables = false # 12701
После выполнения следующей команды все выглядит хорошо.
sudo iptables -N DOCKER
Однако я заметил, что не могу установить какие-либо исходящие соединения внутри контейнеров. Например:
xxxxg@ubuntu:~$ sudo docker exec -t -i nginx /bin/bash
root@b0d33f22d3f4:/# ping 74.125.21.147
PING 74.125.21.147 (74.125.21.147): 56 data bytes
^C--- 74.125.21.147 ping statistics ---
35 packets transmitted, 0 packets received, 100% packet loss
root@b0d33f22d3f4:/#
Если я удалю--iptables=false
из демона Docker, интернет-соединение контейнеров вернется к нормальному состоянию, но UFW не будет работать «должным образом» (ну ... по моему определению).
Итак, какова лучшая практика docker + ufw? Кто-нибудь может помочь?
Благодарю.
Барт.