docker 更改MTU大小
更改docker host的MTU
为了优化网络传输能力,有时候我们需要更改MTU的大小。
Linux环境
安装jq
wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -ivh epel-release-latest-7.noarch.rpm
yum repolist
yum install -y jq
检查文件/etc/docker/daemon.json是否存在
vi /etc/docker/daemon.json
如果文件存在就添加"mtu : 1450"
这里mtu根据具体的情况设置为 576或者1450或者其他值
也可以通过执行以下命令来设置
if [ -f /etc/docker/daemon.json ]; then
cat daemon.json| jq 'setpath(["mtu"];576)' > daemon.json.jq && mv -f daemon.json.jq daemon.json
else
cat > /etc/docker/daemon.json <<EOF
{
"mtu": 576
}
EOF
fi
如果当前机器已经有docker存在,则重启docker
systemctl restart docker
需要注意重启docker host对已有docker的影响
Windows或者MacOS
右键点击Docker Desktop小图标,选择Settings->Daemon
点击Advanced,在json最后面添加 mtu:1450
{
"registry-mirrors": [
"https://9suxxh169.mirror.aliyuncs.com"
],
"insecure-registries": [],
"debug": true,
"experimental": false,
"mtu" : 1450
}
最后一行为添加的内容
更改自定义网络MTU
如果容器使用自定义网络则需要额外的操作
清除旧网络
清除旧网络需要把所有的关联容器全部删掉,如果项目已经部署,需要考虑重建容器的风险
docker stop app
docker rm app
docker network rm app-network
建立新网络
这里以bridge网络为例
docker network create --opt com.docker.network.driver.mtu=1450 app-network
然后重新建立被删除的app容器