docker容器内缺少命令的简单解决办法

本站所有内容来自互联网收集,仅供学习和交流,请勿用于商业用途。如有侵权、不妥之处,请第一时间联系我们删除!Q群:迪思分享

免费资源网 – https://freexyz.cn/
目录背景解决方案总结

背景

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

解决方案

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

安装方式如下

系统命令Ubuntu/Debian:apt-get install -y util-linuxCentos/Fedorayum install -y util-linuxAplineapk add util-linux –no-cache

使用方式如下

nsenter 的 c 使用语法为,nsenter -t pid -n,-t 接 进程 ID 号,-n 表示进入名称空间内, 为执行的命令。

举例:有一个容器的 PID 为 30749,进入该容器名称空间内执行 ifconfig ,如下列所示nsenter -t 30749-n ifconfig

容器的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

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

[root@portal1 ~]# docker inspect –format “{{ .State.Pid }}” d3c24a612b88 44463 [root@portal1 ~]#

其中 44463 就是我要的容器PID

总结

免费资源网 – https://freexyz.cn/


© 版权声明
THE END
★喜欢这篇文章吗?喜欢的话,麻烦动动手指支持一下!★
点赞6 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容