我正在尝试用docker模拟生产网络。
我有两个泊坞桥,bridge1
和bridge2
。
我想在它们之间放置另一个docker容器router gateway
。
不确定以下命令,想要这样做:
Router: (172.17.0.2)
iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables -I FORWARD -s 192.168.9.0/24 -d 192.168.8.0/24 -j ACCEPT
iptables -I FORWARD -s 192.168.8.0/24 -d 192.168.9.0/24 -j ACCEPT
Bridge1:
ip route add 192.168.9.0/24 via 172.17.0.2 dev eth0
Bridge2:
ip route add 192.168.8.0/24 via 172.17.0.2 dev eth0
以上命令是否正确?但我怎样才能添加那些iptables规则,有些我怎么也无法改变它们。
答案 0 :(得分:1)
您需要function betterFetch(url, options = { timeout: 10000 }) {
const apiPromise = Promise.race([
fetch(url),
new Promise((resolve, reject) => {
return setTimeout(() => reject(new Error('request timeout')), options.timeout)
})
]);
return apiPromise
.then(response => response.json())
.then(data => camelize(data))
}
// later
betterFetch(`${process.env.API_URL}news`)
.then(data => this.onSuccessNewsFetched(data))
.catch(error => this.onErrorNewsFetched(error))
才能在docker容器中运行--cap-add=NET_ADMIN
命令。
阅读:https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities