当前位置:   article > 正文

docker容器内缺少命令的解决办法_docker 未找到命令

docker 未找到命令

背景

而使用 docker exec 进入其中后,但该容器没有安装 sudo 或 netstat 或者 ping 等命令。

解决方案

在宿主机使用 nsenter 进入容器对应的命名空间下执行对应的命令即可
安装方式如下

系统命令
Ubuntu/Debian:apt-get install -y util-linux
Centos/Fedorayum install -y util-linux
Aplineapk add util-linux --no-cache

使用方式如下
nsenter 的 c 使用语法为,nsenter -t pid -n <commond>,-t 接 进程 ID 号,-n 表示进入名称空间内, 为执行的命令。
举例:有一个容器的 PID 为 30749,进入该容器名称空间内执行 ifconfig ,如下列所示

nsenter -t 30749-n ifconfig
  • 1

容器的PID获取方式, 例如查找容器 paas-web
先获取容器的ID

[root@portal1 ~]# docker ps | grep paas-web
d3c24a612b88        4e0043f40393                                           "/docker-entrypoint.…"   2 weeks ago         Up 2 weeks                                   k8s_paas-web_paas-web-c54d74d44-hr697_kube-system_74070b4e-3405-45aa-8bb1-469e37b6b313_0
097146cbeb00        ********:40443/kubernetes/pause-amd64:3.1    "/pause"                 2 weeks ago         Up 2 weeks                                   k8s_POD_paas-web-c54d74d44-hr697_kube-system_74070b4e-3405-45aa-8bb1-469e37b6b313_0
  • 1
  • 2
  • 3

d3c24a612b88 是我的目标容器,然后执行

[root@portal1 ~]# docker inspect --format "{{ .State.Pid }}"  d3c24a612b88
44463
[root@portal1 ~]#
  • 1
  • 2
  • 3

其中 44463 就是我要的容器PID

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/772912
推荐阅读
相关标签
  

闽ICP备14008679号