docker가 init를 lxc로 실행하지 않는 이유

docker가 init를 lxc로 실행하지 않는 이유

Docker가 init를 실행하고 있지 않습니다. 따라서 시작 중에 서비스가 시작되지 않습니다. Lxc는 lxc-start 중에 init를 실행합니다. Docker가 lxc를 사용하므로 init가 실행되지 않습니다. init를 실행하지 않고 데몬화를 위해 감독자에 의존하면 어떤 이점이 있습니까?

답변1

도커는애플리케이션 컨테이너, 앱을 컨테이너로 배포하는 데 더 중점을 둡니다. 여기에서 앱/프로세스가 실행 중입니다.내부에컨테이너는 유일하게 실행 중인 init 프로세스입니다. 프로세스에 더 많은 앱(mysql, mongodb 데이터베이스 등)이 필요한 경우 하나의 init 데몬으로 관리되는 도커 컨테이너 내부에서 앱을 시작하지 않고 도커 컨테이너 내부에서 각각 더 많은 도커 컨테이너를 시작합니다.

당신은 시도 할 수 있습니다http://phusion.github.io/baseimage-docker/도커 이미지(Ubuntu 기반) 내에서 더 많은 프로세스를 실행하기 위한 간단한 init 데몬을 제공하거나 LXD를 사용해 볼 수 있습니다.http://www.ubuntu.com/cloud/lxd컨테이너 기술의 경우시스템 컨테이너.

답변2

이 질문은 다음과 같이 제기되었습니다.문제initGitHub에 있으며 0.6.x부터 실행할 수 있도록 풀 요청이 병합되었습니다 .

docker run $IMAGE /sbin/init

원천

init가 실행되지 않은 원래 이유(이후 유효하지 않음)0.6.x):

새 컨테이너를 시작할 때 docker mint-bound는 컨테이너 내에서 /sbin/init로 자체적으로 설정되어 실제 /sbin/init를 숨기고 프로세스에서 실행할 수 없도록 만듭니다.

이 답변더 많은 도움을 제공할 수 있으며,도커 가이드북도움이 될 수 있습니다.

관련 정보