blade create docker network
介绍
容器内网络实验场景,同基础资源的网络场景
命令
支持的网络场景命令如下:
blade create docker network delay
容器网络延迟,同 [blade create network delay](blade create network delay.md)blade create docker network loss
容器网络丢包,同 [blade create network loss](blade create network loss.md)blade create docker network dns
容器内域名访问异常,同 [blade create network dns](blade create network dns.md)
参数
除了上述基础场景各自所需的参数外,在 docker 环境下,还支持的参数如下:
--container-id string 目标容器 ID
--docker-endpoint string Docker server 地址,默认为本地的 /var/run/docker.sock
--image-repo string chaosblade-tool 镜像仓库地址,默认是从 `registry.cn-hangzhou.aliyuncs.com/chaosblade`
案例
对 nginx 容器 80 端口做访问延迟 3 秒,执行命令如下:
blade create docker network delay --time 3000 --interface eth0 --local-port 80 --container-id 5239e26f6329
第一次会拉取 chaosblade-tool 镜像,可能会慢一些。返回 {"code":200,"success":true,"result":"fc3a1b0b4295e47f"}
表示执行成功,可以看到新启动了一个名字为 5239e26f6329-delay 的容器,通过 sidecar 方式,复用目标容器网络,执行实验。
在本机访问该容器映射出的端口服务,比如映射的端口为 0.0.0.0:32768->80/tcp
,可以看出发生延迟:
[root@izbp11rrxxxx ~]# time curl localhost:32768
real 0m9.001s
user 0m0.004s
sys 0m0.002s
此处延迟 9 秒的原因是涉及到多次 80 端口访问。
也可以在同一网段下的另外一台容器内访问目标容器的 80 服务,同样能验证效果:
bash-4.4# time curl 172.17.0.2:80
real 0m9.005s
user 0m0.004s
sys 0m0.001s
执行以下命令可销毁实验:
blade destroy fc3a1b0b4295e47f
启动的 sidecar 容器会被销毁,网络恢复。可以通过上述方法再次验证。
[root@izbp11rr7oumxxxxx ~]# time curl localhost:32768
real 0m0.011s
user 0m0.003s
sys 0m0.002s
常见问题
Q:执行命令报错: {"code":604,"success":false,"error":"RTNETLINK answers: File exists\n exit status 2 exit status 1"} A:网络演练场景已存在,可以使用 docker ps | grep chaosblade
来查看正在运行的 sidecar 容器
Last updated
Was this helpful?