Kubernetes: 용기 설정 을 시작 할 때 실행 할 명령 및 입력

5017 단어
목차
DockerFile
CMD    
ENTRYPOINT
CMD 와 ENTRYPOINT 우선 순위
CMD 와 ENTRYPOINT 사용 제안:
Pod 생 성 시 명령 및 입 참 설정
셸 을 통 해 명령 을 수행 합 니 다.
 Docker 와 Kubernetes 의 대응 관계
DockerFile
CMD    
CMD 명령 은 Dockerfile 에서 하나만 허용 합 니 다. 여러 개가 나타 나 면 마지막 CMD 명령 으로 덮어 씁 니 다.
CMD 명령 은 주로 용기 가 실 행 될 때 기본 값 을 제공 합 니 다. 이 기본 값 은 명령 을 실행 할 수도 있 고 매개 변수 만 설정 할 수도 있 습 니 다. 이 는 ENTRYPOINT 와 결합 하여 사용 해 야 합 니 다.
CMD 명령 은 세 가지 설정 형식 이 있 습 니 다.
CMD ["executable", "param 1", "param 2"] exec 실행, 추천 방식 사용;
CMD command param 1 param 2 는/bin/sh 에서 실행 되 며 상호작용 이 필요 한 응용 프로그램 에 제공 합 니 다.
CMD ["param 1", "param 2"] 가 ENTRYPOINT 에 제공 하 는 기본 매개 변수;
CMD 예시:
CMD ["/usr/bin/wc","--help"]
CMD echo "This is a test."| wc -
ENTRYPOINT
ENTRYPOINT: 용기 가 시 작 된 후 실행 되 는 명령 을 설정 하고 docker run 이 제공 하 는 매개 변 수 를 덮어 쓸 수 없습니다.Dockerfile 마다 하나의 ENTRYPOINT 만 있 을 수 있 습 니 다. 여러 개 를 지정 할 때 마지막 하나만 효과 가 있 습 니 다.
ENTRYPOINT 명령 설정 형식
ENTRYPOINT ["executable", "param1", "param2"] (exec 형식 추천 하 다
ENTRYPOINT command param1 param2 (shell 형식
셸 형식 은 CMD 를 사용 하거나 명령 행 인 자 를 실행 하 는 것 을 방지 하지만 ENTRYPOINT 는/bin/sh - c 의 하위 명령 으로 시작 되 고 신 호 를 전달 하지 않 는 것 이 단점 입 니 다.이 는 실행 가능 한 파일 이 용기 의 PID 1 이 아니 라 유 닉 스 신 호 를 받 지 않 기 때문에 실행 가능 한 파일 은 docker stop 에서 SIGTERM 으로 받 지 않 습 니 다.
ENTRYPOINT 예시
ENTRYPOINT ["top", "-b"]
 ENTRYPOINT exec top -b
CMD 와 ENTRYPOINT 우선 순위
  • Dockerfile 은 최소한 CMD 나 ENTRYPOINT 명령 을 지정 해 야 합 니 다.
  • 용 기 를 실행 가능 한 파일 로 사용 할 때 ENTRYPOINT 를 정의 해 야 합 니 다.
  • CMD 는 ENTRYPOINT 명령 의 기본 매개 변 수 를 정의 하거나 용기 에서 특별 명령 을 수행 하 는 방법 으로 사용 해 야 합 니 다.
  • 선택 가능 한 인자 가 있 는 용 기 를 실행 할 때 CMD 가 덮어 집 니 다.

  •  
    No ENTRYPOINT
    ENTRYPOINT exec_entry p1_entry  (shell 형식
    ENTRYPOINT [“exec_entry”, “p1_entry”]  (exec 형식
    NO CMD
     불허
    /bin/sh -c exec_entry p1_entry
    exec_entry p1_entry
    CMD [“exec_cmd”, “p1_cmd”] (exec 형식
    exec_cmd p1_cmd
    /bin/sh -c exec_entry p1_entry
    exec_entry p1_entry exec_cmd p1_cmd
    CMD [“p1_cmd”, “p2_cmd”]  매개 변수 형식
    p1_cmd p2_cmd
    /bin/sh -c exec_entry p1_entry
    exec_entry p1_entry p1_cmd p2_cmd
    CMD exec_cmd p1_cmd  (shell 형식
    /bin/sh -c exec_cmd p1_cmd
    /bin/sh -c exec_entry p1_entr
    exec_entry p1_entry/bin/sh -c exec_cmd p1_cmd
    CMD 와 ENTRYPOINT 사용 제안:
    (1) CMD 명령 은 image 의 모든 응용 을 수행 합 니 다.CMD 는 보통 CMD ["executable", "param 1", "param 2"...] 형식 으로 실 행 됩 니 다.따라서 이미지 가 아파 치, 레일 스 와 같은 서 비 스 를 제공 하 는 데 사용 된다 면.CMD 와 같은 명령 을 수행 해 야 합 니 다.
    (2) 다른 케이스 에서 CMD 는 특정한 셸 을 수행 하 는 데 사용 된다. 예 를 들 어 bash, python, perl 등 이다.예 를 들 어 CMD ["perl", "- de0"], CMD ["python"] , or  CMD [“php”, “-a”].
    (3) docker run - it python 을 실행 할 때 특정한 셸 에 들 어 갈 수 있 습 니 다.
    (4) CMD 는 항상 ENTRYPOINT 에 맞 춰 사용한다.사용자 가 ENTRYPOINT 의 특성 을 잘 알 고 있다 는 것 을 확인 하지 않 는 한아니면 ENTRYPOINT 를 미리 설정 하 는 게 좋 을 것 같 아 요.
    Pod 생 성 시 명령 및 입 참 설정
    Pod 를 만 들 때 다음 용기 에 시작 할 때 실행 할 명령 과 참 조 를 설정 할 수 있 습 니 다.명령 을 설정 하려 면 설정 파일 에 작성 하 십시오.  command  필드 에서 명령 의 참 여 를 설정 하려 면 설정 파일 에 작성 하 십시오.  args  필드 아래.Pod 생 성 이 완료 되면 이 명령 과 입 참 을 변경 할 수 없습니다.
  • 설정 파일 에 용기 가 시 작 될 때 실행 할 명령 과 참 조 를 설정 하면 용기 미 러 에 있 는 명령 과 참 조 는 더 이상 실행 되 지 않 고 덮어 씁 니 다.
  • 설정 파일 에 입 참 만 설정 되 어 있 지만 해당 하 는 명령 이 설정 되 어 있 지 않 으 면 용기 미 러 에 있 는 자체 명령 은 이 새 입 참 을 실행 할 때의 입 참 으로 사용 합 니 다.

  • 셸 을 통 해 명령 을 수행 합 니 다.
    셸 스 크 립 트 에서 명령 을 실행 해 야 할 때 가 있 습 니 다.예 를 들 어 실행 할 명령 은 여러 명령 으로 조합 되 거나 셸 스 크 립 트 일 수 있 습 니 다.이 때 셸 에서 명령 을 수행 할 수 있 습 니 다.
    command: ["/bin/sh"]
    args: ["-c", "while true; do echo hello; sleep 10;done"]

     Docker 와 Kubernetes 의 대응 관계
    묘사 하 다.
    Docker 필드 이름
    Kubernetes 필드 이름
    용기 실행 명령
    Entrypoint
    command
    명령 에 전 달 된 인자
    Cmd
    args
    기본 Entrypoint 와 Cmd 를 덮어 쓰 려 면 다음 규칙 을 따라 야 합 니 다.
  • 용기 설정 에 설정 되 어 있 지 않 으 면  command  혹은  args 그러면 Docker 미 러 가 자체 적 으로 가 져 온 명령 과 입 참 을 사용 합 니 다.
  • 용기 설정 에 만 설 치 된 경우  command  근 데 설정 이 없어 요.  args 용기 가 시 작 될 때 이 명령 만 실 행 됩 니 다. Docker 미 러 에 있 는 자체 명령 과 가입 은 무시 되 었 습 니 다.
  • 용기 설정 에 만 설 치 된 경우  args 그러면 Docker 미 러 에 있 는 자체 명령 은 이 새 입 참 을 실행 할 때의 입 참 으로 사용 합 니 다.
  • 용기 설정 에 동시에 설정 하면  command  ... 과  args 그러면 Docker 미 러 에 있 는 자체 명령 과 가입 은 무시 되 었 습 니 다.용기 가 시 작 될 때 설정 에 설 치 된 명령 만 실행 하고 설정 에 설 치 된 입 참 을 명령 의 입 참 으로 사용 합 니 다.

  • 아래 표 는 각종 설정 장면 을 포함한다.
    미 러 엔트리 포인트
    미 러 Cmd
    용기 명령
    용기 args
    명령 실행[/ep-1] [foo bar] [ep-1 foo bar] [/ep-1] [foo bar] [/ep-2] [ep-2] [/ep-1] [foo bar] [zoo boo] [ep-1 zoo boo] [/ep-1] [foo bar] [/ep-2] [zoo boo] [ep-2 zoo boo]
    참조 링크:
    https://kubernetes.io/zh/docs/tasks/inject-data-application/define-command-argument-container/#%E6%B3%A8%E6%84%8F

    좋은 웹페이지 즐겨찾기