我正在尝试为Docker容器设置iptables规则。我正在使用nsenter在容器的网络名称空间内执行iptables命令:
# log access to port 8080
PID=$(docker inspect --format "{{.State.Pid}}" $ID)
/home/ubuntu/nsenter -n -t $PID iptables -A OUTPUT -o eth0 -p tcp -m tcp --dport 8080 -j LOG
除LOG
规则外,此方法非常有效。那些似乎不在任何地方记录。请注意,适用于主机系统的相同规则适用并登录到/var/log/kern.log
。
在哪里可以找到这些日志规则的输出?这是网络名称空间的已知问题/限制吗?
我使用基于centos 7的docker容器进行了测试,并且工作正常,主机是centos,使用ubuntu Ubuntu 15.04主机和ubuntu 12.04.5容器进行的同一测试不起作用,无论如何您都需要确定syslog正在您的主机中运行。
—
c4f4t0r
我使用Debian wheezy作为主机,并在容器中使用Ubuntu 14.04。那里不起作用。我想知道那里有什么不同。
—
Fabian Jakobs,2015年
您找到解决方案了吗?
—
gucki 2015年
@gucki我没有找到使它在命名空间内运行的解决方案。我将日志记录规则移出了容器。
—
Fabian Jakobs,2015年
NFLOG
但仍然无法正常工作