docker exec를 통해 bash를 얻으려고 시도했지만 아무것도 작동하지 않습니다 (Jaeger 컨테이너)-> OCI 런타임 exec 실패

cnp-la

예를 들어 ls라는 기본 쉘 명령을 실행하려고 시도했지만 모두 작동합니다. 따라서 컨테이너에 bash가 활성화되어 있는지 확인하고 비슷한 게시물에 대한 답변이 실행되도록했습니다.

docker exec -it amazing_robinson //bin//bash
docker exec -it amazing_robinson /bin/bash
docker exec -it amazing_robinson //bin//sh
docker exec -it amazing_robinson /bin/sh
docker exec -it amazing_robinson sh
docker exec -it amazing_robinson bash

그러나 그들 중 어느 것도 작동합니다 (도커 exec -it amazing_robinson ls).

이것은 오류입니다.

OCI runtime exec failed: exec failed: container_linux.go:345: starting container process caused "exec: \"/bin/bash\": stat /bin/bash: no such file or directory": unknown

컨테이너는

 jaegertracing/example-hotrod:latest
Adiii

기본 이미지 를 처음부터 확인하는 경우 .

FROM scratch
EXPOSE 8080 8081 8082 8083
COPY hotrod-linux /go/bin/
ENTRYPOINT ["/go/bin/hotrod-linux"]
CMD ["all"]

따라서 이미지가 처음부터이므로 Bash, ash 가 없으므로 cotnain 만됩니다 hotrod-linux.

이러한 경우 sh 또는 bash를 가져 오려면 다단계 Dockerfile을 사용해야합니다. Dockerfile에서 기본 이미지를 사용한 다음 Dockerfile의 다중 단계에서 기본 이미지의 바이너리를 복사 할 수 있습니다. 여기 있습니다

FROM jaegertracing/example-hotrod:latest as base
FROM alpine
COPY --from=base /go/bin/hotrod-linux /go/bin/hotrod-linux
ENTRYPOINT ["/go/bin/hotrod-linux"]
CMD ["all"]

이제 빌드하고 테스트 할 수 있으며 docker exec를 사용하여 컨테이너 내부에서 명령을 실행할 수 있습니다. 여기에 예제가 있습니다.

docker build -t myimage .

docker run -dit --name test myimage

#now run
docker exec -it test ash

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관