在docker中使用rhel7.2映像运行iptables

时间:2016-02-19 05:08:19

标签: git bash docker iptables

在使用rhel7.2镜像在docker中运行iptables时,它工作正常 但是当我试图用一些规则运行docker时,它根本就没有开始。

这是我的泊坞文件

#######Simplest Docker file which I used for building image and it works from marathon if you dont give cmd or args ########
FROM registry.access.redhat.com/rhel7.2
ADD rhel7.2.repo /etc/yum.repos.d/rhel7.2.repo
RUN yum -y update
RUN yum install iptables -y
CMD ["/usr/sbin/init"]
######### Dockerfile END ####

###to run the docker
sudo docker run -it /bin/bash -c "iptables -t nat -A PREROUTING -p udp -m udp --dport 53 -m statistic --mode nth --every 2 --packet 0 -j DNAT --to-destination 172.31.254.1:10004"

请让我知道什么是错的?

1 个答案:

答案 0 :(得分:0)

如果它在没有提供args的情况下运行,我怀疑问题是你覆盖了图像的CMD;通过调用/bin/bash -c ...,您将覆盖/usr/sbin/init,因此不会启动iptables。

您可以启动容器(不带参数),然后使用docker exec -it <containername> bash在容器中打开一个交互式会话来修改iptables设置。