欢迎访问WDPHP素材源码!今天是2024年04月30日 星期二,熬夜对身体不好,早点休息吧!
您好,游客 [ 马上登录 | 注册帐号 | 微信登录 | QQ登录]
当前位置:首页 > 教程 > 其他教程 > 

docker容器内缺少命令如何解决
栏目分类:其他教程    发布日期:2023-09-12    浏览次数:390次     收藏

这篇文章主要介绍“docker容器内缺少命令如何解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“docker容器内缺少命令如何解决”文章能帮助大家解决问题。

背景

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

解决方案

在宿主机使用

nsenter
进入容器对应的命名空间下执行对应的命令即可

安装方式如下

系统 命令
Ubuntu/Debian: apt-get install -y util-linux
Centos/Fedora yum install -y util-linux
Apline apk add util-linux --no-cache

使用方式如下

nsenter 的 c 使用语法为,

nsenter -t pid -n <commond>
,-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
源码 模板 特效 素材 资源 教程 站长