背景:
当我想在容器内执行一条命令时,报错:bash: ip: command not found((命令找不到),而我又不想在容器内安装这个命令,这时我们可以以容器的身份运行操作系统上的命令。
例如:
[root@master01-130 ~]# kubectl exec -it web-5899d78c9-kdfcc -- bash
root@web-5899d78c9-kdfcc:/# ip a
bash: ip: command not found
解决方法:
1、找到容器所在的节点
[root@master01-130 ~]# kubectl get pods -o wide
2、进入到该节点执行以下命令
①、查找出容器ID
[root@node01-130 ~]# docker ps
②、查找出容器的Pid
[root@node01-130 ~]# docker inspect 922a97dd53e5|grep -i pid
3、在主机上进入容器环境,执行命令
nsenter -n -t 25289
退出环境:
[root@node01-130 ~]# exit
logout