인프라/Docker

[Docker] OCI runtime exec failed: exec failed: unable to start container process: exec: "ping": executable file not found in $PATH: unknown

Razelo 2023. 2. 18. 21:31

간만에 도커를 실습하는 와중에 아래와 같은 에러를 마주했다. 

OCI runtime exec failed: exec failed: unable to start container process: exec: "ping": executable file not found in $PATH: unknown

 

내가 하고자 하는 명령어는 아래와 같았다. 

docker exec mysql ping findby

docker exec findby ping mysql 

 

즉 findby라는 컨테이너와 mysql이라는 컨테이너 사이에서 서로에게 핑을 보냄으로써 정상적으로 컨테이너가 살아있는 지 확인하기 위함이었다. 물론 당연히 떴으니 살아있겠지만 그냥 확인차 ping은 잘 날라가는 지 보고 싶었다. 

 

근데 왜 위 오류가 발생했을까? 위 오류를 잘 살펴보자. 

 "ping": executable file not found in $PATH: unknown

 

핑을 찾을 수 없다고 한다.

 

리눅스에서는 기본적으로 해당 명령어를 실행시킬 때 명령어가 실제 존재하는지 PATH를 뒤져가면서 살핀다. 그래서 PATH에 비슷한 이름을 가진 악성 파일을 심어다놓고 공격하는 방법이 있는 것도 그래서다.

 

근데 Ping이 path에 없다고? 즉 ping이 깔려있지 않다는 소리다. 

 

그러면 어떻게 해야할까?

 

우리는 각 컨테이너에서 ping명령어를 실행해서 ping을 날리고 싶은 거니 각각 컨테이너의 쉘을 띄워서 ping 을 설치해주면 된다. 

 

아래와 같이 진행한다. 

 

docker exec -it findby /bin/bash

root@:/# apt-get update

root@:/# apt-get install inetutils-ping

root@:/# exit

docker exec findby ping mysql 

 

핑 결과

64 bytes from blabla: icmp_seq=0 ttl=64 time=0.106 ms
64 bytes from blabla: icmp_seq=1 ttl=64 time=0.080 ms
64 bytes from blabla: icmp_seq=2 ttl=64 time=0.100 ms

 

반응형