2013-12-19 4 views
2

Docker가 init을 실행하고 있지 않습니다. 따라서 서비스는 시작 중에 시작되지 않습니다. lxc는 lxc-start에서 init을 실행합니다. Docker가 lxc를 사용하는 이유는 init을 실행하지 않기 때문입니다. init을 실행하지 않고 daemonization을위한 supervisord에 의존하는 이점은 무엇입니까?docker가 lxc로 init을 실행하지 않는 이유

답변

0

나는/sbin/init을 실행하는 것이 lxc-start의 기본 동작 일 것이라고 생각합니다. 실행될 명령을 기다리고 있습니다. 도커에서 실행 명령에 대한 기본값 인 매개 변수가 없습니다.

당신은 고정 표시기에서 초기화를 명시 적으로 실행할 수 있습니다

docker run ubuntu /sbin/init 

는 개인적으로, 나는이 동작을 좋아 - 내 몇 APSS 관련 프로세스에 대한 컨테이너를 사용하는 것을 선호하고 난 초기화를 시작 할 필요가 없습니다.

0

장점은 용기의 무게를 가볍게 유지하는 것입니다. 어떤 프로세스를 실행할 것인지 결정해야합니다. 그렇게하면 도커가 컨테이너를 정말 빨리 시작할 수 있습니다.

그런데 supervisord에 의존하지 않아도됩니다. 예를 들어 명령어에 넣은 복잡한 쉘 스크립트를 작성할 수 있습니다.

도커의 응용 프로그램 중 하나는 실행 파일로 설정하는 것입니다. 예 : 단위 또는 통합 테스트를 실행하는 이미지를 만들 수 있습니다. 이제는 각자가 사용하지 않는 수십 개의 서비스를 운영하는 것을 원하지 않을 것입니다.

관련 문제