Add flag to set the default ip ports are bound to

This commit is contained in:
Michael Crosby
2013-09-04 00:29:20 +00:00
parent 729b94d448
commit 96d3008465
3 changed files with 17 additions and 3 deletions
+5
View File
@@ -1,5 +1,9 @@
package docker
import (
"net"
)
type DaemonConfig struct {
Pidfile string
GraphPath string
@@ -9,4 +13,5 @@ type DaemonConfig struct {
Dns []string
EnableIptables bool
BridgeIface string
DefaultIp net.IP
}
+7
View File
@@ -7,6 +7,7 @@ import (
"github.com/dotcloud/docker/utils"
"io/ioutil"
"log"
"net"
"os"
"os/signal"
"strconv"
@@ -38,7 +39,10 @@ func main() {
flHosts := docker.ListOpts{fmt.Sprintf("unix://%s", docker.DEFAULTUNIXSOCKET)}
flag.Var(&flHosts, "H", "tcp://host:port to bind/connect to or unix://path/to/socket to use")
flEnableIptables := flag.Bool("iptables", true, "Disable iptables within docker")
flDefaultIp := flag.String("ip", "0.0.0.0", "Default ip address to use when binding a containers ports")
flag.Parse()
if *flVersion {
showVersion()
return
@@ -69,6 +73,8 @@ func main() {
dns = []string{*flDns}
}
ip := net.ParseIP(*flDefaultIp)
config := &docker.DaemonConfig{
Pidfile: *pidfile,
GraphPath: *flGraphPath,
@@ -78,6 +84,7 @@ func main() {
EnableIptables: *flEnableIptables,
BridgeIface: bridge,
ProtoAddresses: flHosts,
DefaultIp: ip,
}
if err := daemon(config); err != nil {
log.Fatal(err)
+5 -3
View File
@@ -210,7 +210,8 @@ type PortMapper struct {
udpMapping map[int]*net.UDPAddr
udpProxies map[int]proxy.Proxy
iptables *iptables.Chain
iptables *iptables.Chain
defaultIp net.IP
}
func (mapper *PortMapper) Map(port int, backendAddr net.Addr) error {
@@ -223,7 +224,7 @@ func (mapper *PortMapper) Map(port int, backendAddr net.Addr) error {
}
}
mapper.tcpMapping[port] = backendAddr.(*net.TCPAddr)
proxy, err := proxy.NewProxy(&net.TCPAddr{IP: net.IPv4(0, 0, 0, 0), Port: port}, backendAddr)
proxy, err := proxy.NewProxy(&net.TCPAddr{IP: mapper.defaultIp, Port: port}, backendAddr)
if err != nil {
mapper.Unmap(port, "tcp")
return err
@@ -239,7 +240,7 @@ func (mapper *PortMapper) Map(port int, backendAddr net.Addr) error {
}
}
mapper.udpMapping[port] = backendAddr.(*net.UDPAddr)
proxy, err := proxy.NewProxy(&net.UDPAddr{IP: net.IPv4(0, 0, 0, 0), Port: port}, backendAddr)
proxy, err := proxy.NewProxy(&net.UDPAddr{IP: mapper.defaultIp, Port: port}, backendAddr)
if err != nil {
mapper.Unmap(port, "udp")
return err
@@ -305,6 +306,7 @@ func newPortMapper(config *DaemonConfig) (*PortMapper, error) {
udpMapping: make(map[int]*net.UDPAddr),
udpProxies: make(map[int]proxy.Proxy),
iptables: chain,
defaultIp: config.DefaultIp,
}
return mapper, nil
}