| ... | ... |
@@ -18,6 +18,7 @@ type DaemonConfig struct {
|
| 18 | 18 |
DefaultIp net.IP |
| 19 | 19 |
InterContainerCommunication bool |
| 20 | 20 |
GraphDriver string |
| 21 |
+ Mtu int |
|
| 21 | 22 |
} |
| 22 | 23 |
|
| 23 | 24 |
// ConfigFromJob creates and returns a new DaemonConfig object |
| ... | ... |
@@ -41,5 +42,10 @@ func ConfigFromJob(job *engine.Job) *DaemonConfig {
|
| 41 | 41 |
config.DefaultIp = net.ParseIP(job.Getenv("DefaultIp"))
|
| 42 | 42 |
config.InterContainerCommunication = job.GetenvBool("InterContainerCommunication")
|
| 43 | 43 |
config.GraphDriver = job.Getenv("GraphDriver")
|
| 44 |
+ if mtu := job.GetenvInt("Mtu"); mtu != -1 {
|
|
| 45 |
+ config.Mtu = mtu |
|
| 46 |
+ } else {
|
|
| 47 |
+ config.Mtu = DefaultNetworkMtu |
|
| 48 |
+ } |
|
| 44 | 49 |
return &config |
| 45 | 50 |
} |
| ... | ... |
@@ -582,7 +582,7 @@ func (container *Container) Start() (err error) {
|
| 582 | 582 |
params = append(params, |
| 583 | 583 |
"-g", network.Gateway, |
| 584 | 584 |
"-i", fmt.Sprintf("%s/%d", network.IPAddress, network.IPPrefixLen),
|
| 585 |
- "-mtu", "1500", |
|
| 585 |
+ "-mtu", strconv.Itoa(container.runtime.config.Mtu), |
|
| 586 | 586 |
) |
| 587 | 587 |
} |
| 588 | 588 |
|
| ... | ... |
@@ -40,6 +40,7 @@ func main() {
|
| 40 | 40 |
flInterContainerComm = flag.Bool("icc", true, "Enable inter-container communication")
|
| 41 | 41 |
flGraphDriver = flag.String("s", "", "Force the docker runtime to use a specific storage driver")
|
| 42 | 42 |
flHosts = docker.NewListOpts(docker.ValidateHost) |
| 43 |
+ flMtu = flag.Int("mtu", docker.DefaultNetworkMtu, "Set the containers network mtu")
|
|
| 43 | 44 |
) |
| 44 | 45 |
flag.Var(&flDns, "dns", "Force docker to use specific DNS servers") |
| 45 | 46 |
flag.Var(&flHosts, "H", "Multiple tcp://host:port or unix://path/to/socket to bind in daemon mode, single connection otherwise") |
| ... | ... |
@@ -87,6 +88,7 @@ func main() {
|
| 87 | 87 |
job.Setenv("DefaultIp", *flDefaultIp)
|
| 88 | 88 |
job.SetenvBool("InterContainerCommunication", *flInterContainerComm)
|
| 89 | 89 |
job.Setenv("GraphDriver", *flGraphDriver)
|
| 90 |
+ job.SetenvInt("Mtu", *flMtu)
|
|
| 90 | 91 |
if err := job.Run(); err != nil {
|
| 91 | 92 |
log.Fatal(err) |
| 92 | 93 |
} |
| ... | ... |
@@ -37,6 +37,7 @@ To list available commands, either run ``docker`` with no parameters or execute |
| 37 | 37 |
-icc=true: Enable inter-container communication |
| 38 | 38 |
-ip="0.0.0.0": Default IP address to use when binding container ports |
| 39 | 39 |
-iptables=true: Disable docker's addition of iptables rules |
| 40 |
+ -mtu=1500: Set the containers network mtu |
|
| 40 | 41 |
-p="/var/run/docker.pid": Path to use for daemon PID file |
| 41 | 42 |
-r=true: Restart previously running containers |
| 42 | 43 |
-s="": Force the docker runtime to use a specific storage driver |
| ... | ... |
@@ -19,6 +19,7 @@ import ( |
| 19 | 19 |
const ( |
| 20 | 20 |
DefaultNetworkBridge = "docker0" |
| 21 | 21 |
DisableNetworkBridge = "none" |
| 22 |
+ DefaultNetworkMtu = 1500 |
|
| 22 | 23 |
portRangeStart = 49153 |
| 23 | 24 |
portRangeEnd = 65535 |
| 24 | 25 |
siocBRADDBR = 0x89a0 |
| ... | ... |
@@ -118,7 +119,6 @@ func CreateBridgeIface(config *DaemonConfig) error {
|
| 118 | 118 |
"192.168.44.1/24", |
| 119 | 119 |
} |
| 120 | 120 |
|
| 121 |
- |
|
| 122 | 121 |
nameservers := []string{}
|
| 123 | 122 |
resolvConf, _ := utils.GetResolvConf() |
| 124 | 123 |
// we don't check for an error here, because we don't really care |