嘟嘟社区

docker容器内执行宿主机命令最优雅的方式是什么?


比如最优雅的ping是这样的:
docker run –rm –net=host busybox ping -c 3 119.29.29.29

但是我要执行的命令在busybox里没有,是一个测速的命令taierspeed,放在宿主机里了,那怎么在docker里最优雅的执行这个命令呢?类似上面的ping用完就删

在docker里运行的目的是因为我有多个宽带想测速,docker运行时自定义一下ip,这个ip会在路由上分流到不同的宽带上,测一下宽带速度

自己构建taierspeed的docker镜像,然后run它
看了一眼他们仓库,有个dockerfile,估计直接能用
https://github.com/ztelliot/taierspeed-cli/blob/master/dockerfile
问gpt,按需求自行构建
本帖最后由 uptime 于 2024-7-9 14:19 编辑

karson 发表于 2024-7-9 12:36
自己构建taierspeed的docker镜像,然后run它
看了一眼他们仓库,有个dockerfile,估计直接能用
https://git …

感谢,自己建了个docker可以用了,也才12M大小

  1. FROM alpine:3.14
  2. COPY taierspeed /bin
  3. RUN chmod +x /bin/taierspeed
  4. CMD ["/bin/sh"]

复制代码

docker build –network=host -t mytaierspeed .
docker run –rm –net=macnet –ip=192.168.2.25 -it mytaierspeed taierspeed –simple

啥测速脚本连绑定IP都不会
本帖最后由 uptime 于 2024-7-9 14:18 编辑

allnetstore 发表于 2024-7-9 13:59
啥测速脚本连绑定IP都不会

可以绑定接口,主要是我这linux同时只能连一个网关,我又不想切换网关,所以用docker来分流测速

我来给一个:
  1. docker run -it –rm debian bash
  2. apt-get update && apt install -y curl wget &&
  3. curl -L https://gitlab.com/spiritysdx/za/-/raw/main/ecs.sh -o ecs.sh && chmod +x ecs.sh && bash ecs.sh

复制代码

运行完成之后,docker会自动删掉的,没必要多复杂