定制 docker 镜像,配合tc,实现精确控制 docker 容器的速度限制
侧边栏壁纸
  • 累计撰写 5 篇文章
  • 累计收到 0 条评论

定制 docker 镜像,配合tc,实现精确控制 docker 容器的速度限制

ZERO零号机
2023-05-10 / 0 评论 / 295 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2023年05月11日,已超过776天没有更新,若内容或图片失效,请留言反馈。

运行 限速 控制端

docker run -d \
    --name tc-docker \
    --network host \
    --privileged \
    --restart always \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v /var/run/docker/netns:/var/run/docker/netns:shared \
    codyguo/tc-docker

编写 dockerfile 文件

进去新建的目录 如/root/docker,根据 dockerfile 文件生成 docker 镜像

docker build -t centos7:ssh . 

登录 docker hub,以 debian 系统为示例

root@debian:~# docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username:账户
Password:密码

WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

# 登录成功
Login Succeeded

上传镜像

# 修改镜像文件名
docker tag centos7:ssh 用户名/centos7:ssh

# 上传镜像
docker push 用户名/centos7:ssh

运行 限速 被控端

  • 自行修改参数。运行时请删除说明文件
docker run -itd  \
    --name 容器名 \
    --privileged=true \
    --cpus 1.5 \ # cpu 使用限制
    --memory  1536m \ # 内存使用限制
    -p 端口 \
    -p 端口/udp \
    -p ssh宿主机端口:ssh容器内端口 \
    --restart=always \
    --label "org.label-schema.tc.enabled=1" \
    --label "org.label-schema.tc.rate=6.5mbps" \ #最小速度,可以逐步微调
    --label "org.label-schema.tc.ceil=50mbps" \ #最大速度,配合微调
    用户名/centos7:ssh

调试限速

  • 调试速度:进入容器后运行
iperf3 -s -p 端口

在宿主机运行

iperf3 -c 127.0.0.1 -p 端口
  • 多次 iperf3、测试、修改运行参数,并重新运行 docker 容器,达到想要的限速。
  • 参数修改:先调整 ceil 为限制速度,然后微调 rate 达到精度限速。

限速 50M 运行效果

0

评论 (0)

取消