docker는 호스트와 커널을 공유합니까?
Docker와 호스트는 커널을 공유합니다. Docker 컨테이너는 본질적으로 호스트의 프로세스입니다. Docker는 네임스페이스를 통해 리소스 격리를 구현합니다.
이 튜토리얼의 운영 환경: linux7.3 시스템, docker-1.13.1 버전, Dell G3 컴퓨터.
Docker와 호스트가 커널을 공유하나요?
Docker와 호스트가 커널을 공유합니다
핵심은 커널의 네임스페이스와 cgroup을 통해 달성되는 프로세스 격리입니다
Docker를 이야기할 때 흔히 Docker 구현에 대해 이야기합니다. 많은 개발자는 Docker 컨테이너가 기본적으로 호스트 시스템의 프로세스라는 것을 알고 있습니다. Docker는 네임스페이스를 통해 리소스 격리를 구현합니다. 리소스 제한은 cgroup을 통해 구현되며 효율적인 파일 작업은 쓰기 중 복사 메커니즘을 통해 구현됩니다. 그러나 네임스페이스 및 cgroup과 같은 기술적인 세부 사항을 자세히 살펴보면 대부분의 개발자는 당황하게 될 것입니다. 따라서 여기서는 먼저 Linux 커널로 안내하고 네임스페이스 및 cgroup의 기술적인 세부 사항을 이해하겠습니다.
네임스페이스 리소스 격리
리소스 격리 컨테이너를 구현하려면 어디서부터 시작해야 할까요? 어떤 사람들의 첫 번째 반응은 chroot 명령일 수 있습니다. 이 명령이 사용자에게 주는 가장 직관적인 느낌은 사용 후 루트 디렉터리 /의 마운트 지점이 전환된다는 것, 즉 파일 시스템이 격리된다는 것입니다. 다음으로 분산환경에서 통신하고 위치를 찾기 위해서는 컨테이너가 독립적인 IP, 포트, 라우팅 등을 가지고 있어야 하므로 당연히 네트워크 격리가 떠오른다. 동시에 컨테이너는 네트워크에서 자신을 식별하기 위해 독립적인 호스트 이름도 필요합니다. 네트워크를 생각하면 자연스럽게 통신이 떠오르고, 프로세스 간 통신의 격리 필요성도 떠오릅니다. 개발자는 권한 문제에 대해서도 생각해 본 적이 있을 것입니다. 사용자와 사용자 그룹을 격리하면 사용자 권한이 격리됩니다. 마지막으로, 컨테이너에서 실행되는 애플리케이션에는 자체 PID(PID)가 있어야 하며 당연히 호스트의 PID와 격리되어야 합니다.
따라서 컨테이너에 필요한 6가지 격리가 기본적으로 완료되었습니다. Linux 커널은 표 1-1에 표시된 대로 이러한 6가지 네임스페이스 격리 시스템 호출을 제공합니다.
사실 리눅스 커널 구현 네임스페이스의 주요 목적 중 하나는 경량 가상화(컨테이너) 서비스를 구현하는 것입니다. 동일한 네임스페이스에 있는 프로세스는 서로의 변경 사항을 감지할 수 있으며 외부 프로세스에 대해서는 아무것도 알 수 없습니다. 이는 컨테이너의 프로세스가 독립적인 시스템 환경에 있는 것처럼 보이게 하여 독립성과 격리를 달성할 수 있습니다.
추천 학습: "docker 비디오 튜토리얼"
위 내용은 docker는 호스트와 커널을 공유합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Docker 이미지를 업데이트하는 단계는 다음과 같습니다. 최신 이미지 태그 가져 오기 새 이미지 특정 태그의 이전 이미지 삭제 (선택 사항) 컨테이너를 다시 시작하십시오 (필요한 경우)

Docker 이미지 생성 단계 : 빌드 지침이 포함 된 Dockerfile을 작성하십시오. Docker 빌드 명령을 사용하여 터미널에 이미지를 빌드하십시오. Docker 태그 명령을 사용하여 이미지를 태그하고 이름과 태그를 지정하십시오.

Docker Desktop을 사용하는 방법? Docker Desktop은 로컬 머신에서 Docker 컨테이너를 실행하는 도구입니다. 사용 단계는 다음과 같습니다. 1. Docker Desktop 설치; 2. Docker Desktop을 시작하십시오. 3. Docker 이미지를 만듭니다 (Dockerfile 사용); 4. Docker Image 빌드 (Docker 빌드 사용); 5. 도커 컨테이너를 실행하십시오 (Docker Run 사용).

Docker 버전을 얻으려면 다음 단계를 수행 할 수 있습니다. Docker 명령 "Docker -version"을 실행하여 클라이언트 및 서버 버전을 볼 수 있습니다. Mac 또는 Windows의 경우 Docker Desktop GUI의 버전 탭 또는 Aff Docker Desktop 메뉴를 통해 버전 정보를 볼 수도 있습니다.

단계를 따르면 Docker 컨테이너 이름을 쿼리 할 수 있습니다. 모든 컨테이너 (Docker PS)를 나열하십시오. 컨테이너 목록을 필터링합니다 (GREP 명령 사용). 컨테이너 이름 ( "이름"열에 위치)을 가져옵니다.

Docker에 이미지를 저장하려면 Docker Commit 명령을 사용하여 지정된 컨테이너의 현재 상태가 포함 된 새 이미지를 만들 수 있습니다. 구문 : Docker Commit [옵션] 컨테이너 ID 이미지 이름. 이미지를 저장소에 저장하려면 Docker Push 명령 인 Syntax : Docker 푸시 이미지 이름 [: tag]을 사용할 수 있습니다. 저장된 이미지를 가져 오려면 Docker Pull 명령 인 Syntax : Docker Pull Image Name [: Tag]을 사용할 수 있습니다.

Docker의 외부 호스트에 파일을 복사하는 방법 : Docker CP 명령 사용 : Docker CP 실행 [옵션] & lt; 컨테이너 경로 & gt; & lt; 호스트 경로 & gt;. 데이터 볼륨 사용 : 호스트에서 디렉토리를 만들고 -V 매개 변수를 사용하여 양방향 파일 동기화를 달성하기 위해 컨테이너를 만들 때 컨테이너에 디렉토리를 장착하십시오.

국내 거울 소스로 전환 할 수 있습니다. 단계는 다음과 같습니다. 1. 구성 파일 /etc/docker/daemon.json 편집 및 미러 소스 주소를 추가하십시오. 2. 저장 및 종료 후 Docker Service Sudo SystemCTL Docker를 다시 시작하여 이미지 다운로드 속도 및 안정성을 향상시킵니다.
