>  기사  >  운영 및 유지보수  >  chroot는 docker에서 무엇을 합니까?

chroot는 docker에서 무엇을 합니까?

WBOY
WBOY원래의
2022-02-07 11:13:383220검색

docker에서 chroot는 Unix 및 Linux 시스템의 작업으로, 실행 중인 소프트웨어 프로세스와 해당 하위 프로세스의 루트 디렉터리를 변경하여 프로그램이 디렉터리에 액세스할 수 없도록 합니다. 디렉토리 이외의 것.

chroot는 docker에서 무엇을 합니까?

이 튜토리얼의 운영 환경: linux7.3 시스템, docker-1.13.1 버전, Dell G3 컴퓨터.

docker에서 chroot의 기능은 무엇인가요?

chroot

컨테이너 기술은 1979년 chroot가 처음 등장한 이후 등장했습니다.

Wikipedia는 chroot를 다음과 같이 정의합니다.

는 Unix 및 Linux 시스템에서 실행 중인 소프트웨어 프로세스와 해당 하위 프로세스의 명백한 루트 디렉터리를 변경하는 작업입니다. 이 환경에서 실행되고 chroot를 통해 루트 디렉터리를 설정하는 프로그램은 지정된 루트 디렉터리 외부의 파일에 액세스할 수 없고 읽을 수 없으며 해당 내용을 변경할 수 없습니다.

일반인의 관점에서 보면 chroot는 프로그램이 디렉토리 외부의 다른 디렉토리에 액세스할 수 없도록 프로세스의 루트 디렉토리를 변경할 수 있습니다. 이는 컨테이너에서 수행하는 작업과 매우 유사합니다. 아래에서는 chroot를 시연하기 위해 예제를 사용합니다. ㅋㅋㅋ (docker create docker101tutorial) -o docker101tutorial.tar

#docker101tutorial이라는 컨테이너의 파일 시스템을 docker101tutorial.tar 아카이브 파일로 docker101tutorial.tar에 내보내고 저장합니다

#Created some과 같이 간단히 이해할 수도 있습니다. 디렉토리에 일부 바이너리 파일을 배치하고 rootfs

4), tar -xf docker101tutorial.tar

#docker101tutorial.tar 파일의 내용 추출

5), ls

#현재 rootfs 디렉토리의 파일 내용 보기

6), chroot /Users/xiaoqin.wu/rootfs /bin/sh

#sh 프로세스를 시작하고 /Users/xiaoqin.wu/rootfs를 sh 프로세스의 루트 디렉터리로 사용합니다

비교 위 그림에서 /Users/xiaoqin.wu/rootfs 디렉터리의 파일 내용을 보기 위한 5번 명령: ls의 결과는 sh 프로세스에서 현재 프로세스를 보기 위해 7번 명령: ls를 사용한 결과와 일치합니다. 이 시점에서 chroot를 사용하면 현재 프로세스가 실현되고 호스트 격리와 디렉터리 격리 컨테이너가 완료되었지만 아직 컨테이너라고 부를 수는 없음을 보여줍니다.

이유는 다음과 같습니다.

라우팅 정보를 보려면 8번 명령어: netstat -nr을 사용하세요

chroot는 docker에서 무엇을 합니까?

결과를 보면 네트워크 정보가 분리되어 있지 않은 것으로 나타났습니다. 실제로는 프로세스와 기타 정보가 분리되어 있습니다. 완전한 컨테이너를 구현하려면 세 가지 다른 Linux 기술, 즉 chroot는 docker에서 무엇을 합니까?

Namespace

Cgroup

United File System

권장 학습: "

docker 비디오 튜토리얼chroot는 docker에서 무엇을 합니까?"

이 필요합니다.

위 내용은 chroot는 docker에서 무엇을 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.