当我运行下面的命令时
$ docker container exec -it nginx1 ping nginx2
我遇到的错误是:
OCI运行时执行失败:执行失败:container_linux.go:344:启动容器进程导致“exec:\"ping\": 在$PATH中找不到可执行文件”:未知
如何解决这个问题?
当我运行下面的命令时
$ docker container exec -it nginx1 ping nginx2
我遇到的错误是:
OCI运行时执行失败:执行失败:container_linux.go:344:启动容器进程导致“exec:\"ping\": 在$PATH中找不到可执行文件”:未知
如何解决这个问题?
在阅读本答案之前,我想提醒您,这是我学习Docker的第二天,可能对您的帮助不是完美的。
当容器中未安装ping包时也可能出现此错误。 下面是我解决问题的方法,进入容器并键入以下命令:
docker container exec -it my_nginx /bin/bash
然后安装ping软件包
apt-get update
apt-get install inetutils-ping
这解决了我的问题。nginx:latest
,但两个容器都明显需要 inetutils-ping 包。哦,我刚意识到它必须是 nginx:alpine
镜像,并且不需要安装 ping。 - Thanapooom Ptjrk请使用带有Alpine镜像的Nginx:
docker container run -d --name my_nginx_name nginx:alpine
docker container run -d --name my_nginx_name2 nginx:alpine
然后尝试使用以下命令进行 ping 测试:
docker container exec -it my_nginx_name ping my_nginx_name2
我曾经遇到过同样的问题,并通过访问以下网址解决了它:
docker exec -ti <CONTAINER ID> /bin/sh
/bin/sh
,因此你的解决方案并不太通用。 - Yasen在容器中安装 ping 实用工具。
docker container exec -it webhost /bin/bash
apt-get update
apt-get install inetutils-ping
docker container exec -it webhost ping new_nginx
E: 无法打开锁定文件/var/lib/dpkg/lock-frontend - open (13: 权限被拒绝)
。我如何在Docker容器内成为超级用户?凭证? - Sold Outdocker exec -u 0 -it containerName bash
即使用用户0(-u 0)规范。 - Sold Out我最近遇到了这个问题。当我们用自定义名称运行一个docker容器,并在名称后面加上一个命令/选项/等,那么这些内容将被作为命令传递给容器。所以,在这里容器尝试在内部查找ping命令,但是找不到。因此,按照上面的答案,您必须在容器内安装 inetutils-ping
并运行命令。
尝试这个方法,它对我有效。
# $ docker container exec -it new_nginx bash
# apt-get update
# apt-get install inetutils-ping
针对容器运行您的命令时,请同时为两者执行此操作
# $ docker container exec -it nginx1 ping nginx2
请在两个容器中安装ping,
运行apt-get update命令,
运行apt-get install inetutils-ping命令
然后尝试使用ping命令。
当您尝试在docker image
中运行未找到的命令时,会报告此错误。请检查ping
是否安装在docker
image
中。
apt-get update
,然后尝试安装 apt-get install inetutils-ping
。 - Akash Sharma
nginx1
镜像时安装ping
工具? - Danila Kiverdocker container exec -it nginx1 ping nginx2
- Jakka rohithping
后立即直接调用它(不离开shell)了吗?如果是,您是否尝试通过指定二进制文件的完整路径(例如/usr/bin/ping)来执行它? - Danila Kiver