Docker 컨테이너에 사용할 수 있는 올바른 경량 init process(PID1) 요약

Docker 컨테이너에 대한 정확한 init processDocker and the PID 1 zombie reaping problem 상세 정보.
Docker 1.13부터 init 옵션으로tini에 해당하는 init 프로세스를 훈련합니다(Thanks to@sumomoneko선생님.다음 내용은 --init 기능을 사용할 수 없을 때(K8S 등 이동용기, Docker 1.12 이전 등)에만 유효합니다.

1 컨테이너 단일 애플리케이션 / 슈퍼바이저 없음


tini


tini
  • Handling of zombie processes would be useful
  • 정적 링크의 바이너리1MB 미만.동적 링크는 10KB 정도
  • 441 stars
  • 129 commits
  • 20 releases
  • supervise 기능 없음
  • dumb-init


    dumb-init
  • Introducing dumb-init, an init system for Docker containers
  • 정적 링크의 바이너리700KB。하지만 Musil 과 정적 으로 연결하여 직접 구축하면 20KB
  • 992 stars
  • 158 commits
  • 13 releases
  • supervise 기능 없음
  • 여러 용기 응용 프로그램 지원 슈퍼vise


    runit

  • 유명한 베이스 이미지-docker는runit를 사용한다
  • Baseimage-docker: A minimal Ubuntu base image modified for Docker-friendliness
  • s6-overlay


    s6-overlay
    이것은 s6 프로세스 슈퍼 서버를 Docker 컨테이너로 하는 init 프로세스에 사용하는 도구입니다.
  • S6 Made Easy, with the S6 Overlay | Tutum Blog
  • 바이너리 3.4MB
  • 260 stars
  • 170 commits
  • 45 releases
  • Supervise 기능이 있습니다.
  • 전방에서 슈퍼vise 프로세스를 시작할 수 있음
  • 여러 응용 프로그램을 시작하고 특정 응용 프로그램을 위주로 하려고 할 때(예를 들어cron, Syslog,nginx를 시작하면nginx 이외의 응용 프로그램이 떨어지면 다시 시작하고nginx가 떨어지면 용기 오류가 끝난다) 이것이 유일한 선택입니까?
  • Docker 컨테이너 내에서 여러 응용 프로그램을 실행할 때 사용할 추가 솔루션


  • Using Honcho to Create a Multi-Process Docker Container | via @codeship
  • Procefile 기반의 응용 프로그램인 Honcho라는 슈퍼 서버
  • s6-overlay와 유사하게 대표적인 과정이 끊기면 용기 자체를 낮출 수 있다
  • 하지만, 혼호는 initprocess가 아니기 때문에...'올바르게'사용하려면 다른 initprocess와 조합해야 합니다.그렇다면 혼호의 필요성은...?
  • 모든 과정이 로그를 명확하게 표시할 수 있어서 기쁘지만 Docker Logging과 호환성은?
  • 경품: Docker 컨테이너 시작 액세서리에 사용할 수 있는 템플릿 시스템


    환경 변수에 따라 설정 파일이나 실행 시 파라미터를 바꾸어 프로세스를 실행하려면
  • 케이스 스크립트 등으로 포장
  • 템플릿 시스템 사용
  • 상기
  • 조합
    이런 선택이 있습니다.
    여러 개의 설정 파일, 변수가 많고 프로세스 수가 많으면 템플릿 시스템을 사용할 수 있습니다.
  • voltgrid

  • entrykit(Entrykit은 좀비 프로세스를 킬할 수 없기 때문에 정확한 init 프로세스가 아닙니다. 다르면 조용히 알려주세요.)

  • johanhaleby/bash-templater & Simple templating engine in Bash

  • confd
  • 좋은 웹페이지 즐겨찾기