2017-12-20 1 views
1

셸 형식 및 exec 형식의 명령은 무엇입니까? 필자는 셸 형식과 exec 형식에 대한 명확한 아이디어를 얻기 위해 여러 문서를 살펴 보았습니다. 그러나 모두 나를 혼란스럽게 보였다. 누구든지이 두 형식의 차이점을 알아낼 수 있습니까?
추 신 : 도커 파일 지침 (예 : RUN, CMD, ENTRYPOINT)을 거치면서이 조항들을 접했는데 도커 컨텍스트가 아닌 일반적으로 그 차이점을 알고 싶습니다.셸 형식과 exec 형식이란 무엇입니까?

+0

'docker'를 Q에 태그로 포함하고 헤드 라인에 포함하는 것이 좋습니다. 행운을 빕니다. – shellter

답변

1

도커 셸 구문 (RUN, ENTRYPOINTCMD과 같은 문자열)은 해당 문자열을 /bin/sh -c의 매개 변수로 실행합니다. 이렇게하면 변수, 하위 명령, 파이프 출력, 명령 결합 및 기타 셸 편의를 확장하는 셸이 제공됩니다.

RUN ls * | grep $trigger_filename || echo file missing && exit 1 

exec 구문은 사용자가 포함하는 args를 제공하지만 쉘 구문 분석 기능이없는 바이너리 만 실행합니다. 고정 표시기에서는 json 형식의 배열로이를 나타냅니다.

RUN ["/bin/app", "arg1", "arg2"] 

exec 구문의 장점은 실행 된 프로세스에서 셸을 제거하여 신호 처리를 방해 할 수 있다는 것입니다. 쉘 구문에서 /bin/sh -c으로 명령을 재 형식화하면 입력 지점과 cmd의 병합도 중단 될 수 있습니다.

관련 문제