• 북마크

docker

docker에서 systemctl 동작시키기 (docker에서 system을 접근하는 것은 좋지 않다)

  • - 첨부파일 : Dockerfile (1.4K) - 다운로드
  • - 첨부파일 : systemctl_cmd.sh (297byte) - 다운로드
  • - 첨부파일 : docker-compose.yml (1.0K) - 다운로드
  • - 첨부파일 : gunicorn.service (343byte) - 다운로드

본문

docker의 리눅스 이미지에는 기본적으로 systemctl이 설치되어 있지 않다.

 

때문에 설치를 해주는 과정이 필요하며 cgroup 또한 복사해 줘야 한다.

 

내가 systemctl을 사용하려던 목적은 docker에서 프로세스가 죽거나 좀비 상태가 되었을 때 

 

배포 후 어떻게 복구를 시킬 수 있을지 고민을 하던 중에 행각해 낸 것이었다.

 

결론적으로 docker에서는 리눅스의 부팅과정과 systemctl의 연동 과정에 의해

 

이후 서비스를 등록, 자동으로 등록시키는 과정이 정상적으로 동작되지 않았다.

 

init.d를 이용해 볼까도 생각했지만, supervisor를 사용하면 된다는 것을 알게 되었다.

 

물론 다른 방법들도 많지만, 많은 사용자들이 하나의 docker에서 다중 프로세스를 관리할 때 

 

supervisor를 사용하는 것을 확인하였다. 

 

* 테스트는 하지 않음

 

그리고 하나의 docker에서 하나의 서비스만 동작하는 마이크로 서비스를 목표로 하기 위해 고민하던 중

 

하나의 시스템만 동작하는 docker에서 해당 서비스가 정지하면 재부팅 되는 것이 기본이라는 사실을 생각해 내고

 

gunicorn을 콘솔 명령어로 실행하는 방법에 집증하기로 했다 

 

* 현재 성공함 (메뉴얼이서 말하는 chdir 등의 명령어가 제대로 동작하지 않았기에 쉘 스크립트로 워킹 디렉토리 패스를 이동 후 동작하였음)

 

성공한 docker 및 docker-compose로 모든 저장소를 공통적으로 업데이트 하기 전,

 

나중에 필요할지 모르기 때문에 systemctl에 성공한 파일들을 공유하고자 남긴다.

 

* docker에서 systemctl을 사용하는 사용자도 많이 있음 

 

 

 

 

댓글목록 0

등록된 댓글이 없습니다.
전체 19 건 - 1 페이지
제목
최고관리자 1,460 2020.08.06
최고관리자 1,040 2020.08.06
최고관리자 3,632 2020.06.30
최고관리자 1,668 2020.06.29
최고관리자 1,506 2020.06.06
최고관리자 982 2020.06.03
최고관리자 4,218 2020.05.27
최고관리자 1,112 2020.04.27
최고관리자 1,137 2020.03.31
최고관리자 2,216 2020.05.19
최고관리자 1,061 2020.05.10
최고관리자 1,048 2020.04.30
최고관리자 1,151 2020.04.27
최고관리자 1,101 2020.05.23
최고관리자 5,132 2020.05.15