Node.js OCI运行时exec失败:exec失败:容器\u linux。go:344:启动容器进程

Node.js OCI运行时exec失败:exec失败:容器\u linux。go:344:启动容器进程,node.js,docker,docker-compose,dockerfile,docker-machine,Node.js,Docker,Docker Compose,Dockerfile,Docker Machine,当我运行下面的命令时 $ docker container exec -it nginx1 ping nginx2 这就是我面临的错误: OCI运行时exec失败:exec失败:容器\u linux。go:344:启动容器进程导致“exec:\“ping\”:在$PATH中未找到可执行文件:未知 如何解决此问题?当您尝试运行docker图像中未找到的命令时,会报告此错误。请检查ping是否安装在docker图像中,在阅读此答案之前,请告知您,这是我学习docker的第二天,可能对您的帮助不大

当我运行下面的命令时

$ docker container exec -it nginx1 ping nginx2 
这就是我面临的错误:

OCI运行时exec失败:exec失败:容器\u linux。go:344:启动容器进程导致“exec:\“ping\”:在$PATH中未找到可执行文件:未知


如何解决此问题?

当您尝试运行docker
图像中未找到的命令时,会报告此错误。请检查
ping
是否安装在
docker
图像中,在阅读此答案之前,请告知您,这是我学习docker的第二天,可能对您的帮助不大

当容器中没有安装ping包时,也可能会发生此错误,我解决了以下问题,如下所示,bash到容器中

docker container exec -it my_nginx /bin/bash
然后安装ping包

apt-get update
apt-get install inetutils-ping

这解决了我的问题。

这是我最近遇到的问题。当运行具有自定义名称的docker容器时,如果我们在名称后放置命令/选项/etc,则会将其作为命令传递给容器。因此,在这里,容器试图在其内部找到ping命令,但无法找到,因此如上所述,您必须在容器内部安装
inetutils ping
,并运行该命令请使用nginx的alpine图像:

docker容器运行-d——命名my\u nginx\u name nginx:alpine

docker容器运行-d——命名my\u nginx\u name 2 nginx:alpine

然后尝试使用以下命令ping:


docker container exec-it my\u nginx\u name ping my\u nginx\u name 2

我遇到了同样的问题,并通过访问以下内容解决了问题:

docker exec-ti/bin/sh

试试这个它对我很管用

# $ docker container exec -it new_nginx bash 
# apt-get update
# apt-get install inetutils-ping
对两个容器都执行此操作,然后运行命令

# $ docker container exec -it nginx1 ping nginx2 

    

在容器中安装ping实用程序

docker container exec -it webhost /bin/bash
apt-get update
apt-get install inetutils-ping

docker container exec -it webhost ping new_nginx

在生成过程中将
ping
安装到
nginx1
映像中?我在生成过程中没有安装,但我所做的是在运行容器后,因为它说exec:“ping\”:在$PATH中找不到可执行文件“:未知我在容器内安装了ping,但没有用\n您是如何做到这一点的,以及您是如何尝试验证安装的?如果二进制文件安装在正在运行的容器中,并且位于路径中,它应该可以工作。首先,我使用docker exec-it bash container\u id进入容器并安装了package manager,然后我安装了ping安装成功,然后在我再次尝试此命令之后,``docker container exec-it nginx1 ping nginx2``您是否尝试在安装后直接调用
ping
(不离开shell)?如果是,您是否通过指定二进制文件的完整路径(例如/usr/bin/ping)进行了尝试?即使未安装,我也尝试使用bash在容器内安装它,但它不起作用。首先运行
apt get update
,然后尝试安装
apt get install inetutils ping
。这不是问题的答案。此外,并非所有容器都有
/bin/sh
,因此您的解决方案不是那么通用。