• 북마크

개발기록

syackoverflow에 질문을 올리다

본문

질문에 내가 꼭 기억해 둬야 할 답변을 얻게 되다

 

Containers don't "boot"; they run one process only (and anything else that process cares to start). I'd suggest avoiding systemd in a container if at all possible. Typical Docker practice would be to just run  CMD ["gunicorn"]  in your Dockerfile and make that be the only process in the container. 

 

즉 하나의 컨테이너에 하나의 프로세스가 동작하는 것을 원칙으로 하자. 컨테이너를 시스템화 시키지 말자

사실 systemctl은 시스템 자원을 건드리는 프로세스이며  프리빌리지를 허용해야 사용이 가능하다.

 

내가 원하는 방식은 컨테이너에서 프로세스가 두개 이상 동작하는 경우에 하나의 프로세스가 죽는 경우 컨테이너는 계속 동작하고 있을 수 있다.

이때 죽은 프로세스를 재실행 하고 싶었다. 뿐만 아니라 컨테이너의 재 실행시 자동으로 서비스를 동작시키고 싶었다.

 

이는 사실 docker의 모토에 적합한 행동은 아니었지만, 내가 생각할때 꼭 필요한 보완 기능이라 생각했다.

뿐만 아니라 현재 리눅스는 부팅 및 서비스 구동에 있어서 systemd로 이동하고 있기 때문에 당연히 이 방법을 해결해야 한다고도 생각했다.

 

다시 원점으로 돌아가기로 한다.

 

그리고 검색후 2차로 고려했던 supervisor를 사용하기로 했다. 

https://gomex.me/2018/07/21/do-you-need-to-execute-more-than-one-process-per-container/

 

해당 링크에서 보면 docker에서 하나의 컨테이너에서 다중 서비스(프로세스)를 사용할때 적극 추천하며 장점에 대해서도 설명하였는데

 

내가 원하는 것들이 다 충족 되었다.

 

ref : 

https://docs.docker.com/config/containers/multi-service_container/

https://blog.naver.com/ktw5724/220899692550

https://www.hides.kr/1009

 

 

[이 게시물은 최고관리자님에 의해 2020-05-23 01:49:08 일상기록에서 이동 됨]

댓글목록 0

등록된 댓글이 없습니다.
전체 13 건 - 1 페이지
제목
최고관리자 838 2020.07.26
최고관리자 820 2020.07.23
최고관리자 810 2020.07.12
최고관리자 830 2020.07.11
최고관리자 645 2020.06.28
최고관리자 785 2020.06.19
최고관리자 672 2020.06.17
최고관리자 835 2020.06.13
최고관리자 835 2020.06.13
최고관리자 767 2020.06.04
최고관리자 33,418 2020.04.30
최고관리자 926 2020.04.16
최고관리자 763 2020.04.26