도커 볼륨과 마운트의 차이점은 무엇입니까
"docker 볼륨"과 마운트의 차이점은 다음과 같습니다. "docker 볼륨"은 선언적이며 "Docker Engine" 자체는 시스템의 특정 디렉터리를 차지하며 Docker는 기본적으로 점유된 경로 아래 볼륨에 경로를 할당합니다. Mounting은 마운트 지점으로 경로를 차지하지 않습니다.
이 튜토리얼의 운영 환경: linux7.3 시스템, docker-1.13.1 버전, Dell G3 컴퓨터.
Docker 볼륨과 마운트의 차이점은 무엇인가요?
오랜 기간 동안 여러 컨테이너가 동일한 데이터 디렉터리에 대한 액세스를 공유해야 하거나 컨테이너의 데이터(예: 데이터베이스)를 유지해야 하는 경우 항상 마운트 디렉터리 형식(바인드 마운트)을 사용했으며, 호스트의 디렉터리를 컨테이너의 지정된 디렉터리에 마운트합니다. 이 방법은 문제를 해결할 수 있지만 이 방법에는 항상 몇 가지 단점이 있습니다. 서로 다른 서버는 실제 상황에 따라 디스크 마운트 디렉터리의 경로를 수정해야 합니다.
- 그리고 이러한 문제는 볼륨을 사용하여 해결할 수 있습니다. 먼저 바인드 마운트와 도커 볼륨을 비교한 다음 볼륨이 바인드 마운트 문제를 어떻게 해결하는지 살펴보겠습니다. 먼저 사진을 보겠습니다.
이 사진은 docker 문서에서 가져온 것입니다.

예: Linux 시스템에서는 "/var/someDir"을 자주 사용합니다.
그러나 Mac에서는 /var/가 실제 디렉토리가 아닙니다. Mac 사용자는 Linux보다 더 발전된 디렉토리이며 사용자는 이를 필요로 하지 않습니다. Windows 시스템에서 Windows 사용자는 다음과 같이 질문할 것입니다. /var / 그게 무엇인가요? C 드라이브와 D 드라이브가 가장 합리적인 구분~~
다들 제일 잘생겼다고 누가 제일 잘생겼다


Docker에는 마운트 방식 외에 데이터를 보관할 수 있는 Volume도 있습니다. 이렇게 얘기하기가 좀 쑥스럽네요. Docker를 오랫동안 사용해오면서 늘 Mount를 Volume으로 여겼는데, 그게 제 잘못은 아닙니다. Docker-compose 파일은 볼륨 섹션에 있습니다. 컨테이너와 호스트 마운트 경로 간의 매핑 관계를 작성하는 데는 문제가 없지만 이것은 항상 오해였습니다. . (엉뚱한 비난?)
사실 "마운트"와 "Docker 볼륨"은 동일한 것이 아닙니다. Docker Volume은 선언적이며 Docker 엔진 자체가 시스템에서 특정 디렉터리를 차지합니다. . , Linux는 일반적으로 "/var/lib/docker"이며 Mac 및 Windows에서 조정할 수 있습니다. 볼륨을 선언하면 Docker는 기본적으로 점유된 경로 아래의 볼륨에 경로를 할당합니다. 예:Title

- docker run -d -v "test_vol:/var/data" some_image, 따라서 컨테이너의 /var/data 디렉터리를 "test_vol"의 마운트 지점에 마운트합니다.
- docker-compose는 유사하지만 볼륨 선언이 필요합니다. docker-compose.yaml 파일에서 위의 예를 수정해 보겠습니다.
주의!!
- 이미지와 파일을 저장해야 하기 때문에 볼륨이 커지면 docker 디렉터리가 확장된다는 점에 유의해야 합니다. 볼륨을 저장하려면 시스템 디스크에 넣지 않고 도커 설치 디렉터리를 다른 더 큰 장착 디스크로 구성하는 것이 가장 좋습니다.
- 두 가지 동작은 다릅니다. 컨테이너 외부의 해당 디렉터리가 비어 있으면 볼륨은 먼저 컨테이너의 내용을 컨테이너 외부 디렉터리에 복사하고, 마운트는 컨테이너의 내부 디렉터리를 외부 디렉터리로 덮어씁니다! !
- 볼륨 바인드 마운트의 또 다른 단점은 nginx 컨테이너의 구성 파일인 nginx.conf를 마운트하는 등 파일을 직접 마운트할 수 없다는 것입니다.
여기서 주의할 점은 구성 파일과 같은 단일 파일 방식은 볼륨 사용에 적합하지 않다는 점입니다. 바인드 마운트도 해결할 수 있지만 구성 파일에는 데이터베이스 비밀번호와 같은 민감한 정보가 포함되어 있으므로 가장 좋은 방법은 다음과 같습니다. tmpfs를 사용하고 있습니다.
kubernetes의 볼륨도 비슷한 디자인을 반영합니다. subPath가 구성 파일 마운트 문제를 해결할 수 있지만 실제로 가장 좋은 방법은 configMap을 사용하는 것입니다.
추천 학습: "docker 비디오 튜토리얼"
위 내용은 도커 볼륨과 마운트의 차이점은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

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

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

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

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

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

뜨거운 주제











도커 컨테이너를 종료하는 4 가지 명령 사용 Docker Kill & lt; Container_name & gt; 호스트 터미널의 명령 (힘 출구)

Docker에서 MySQL을 시작하는 프로세스는 다음 단계로 구성됩니다. MySQL 이미지를 가져와 컨테이너를 작성하고 시작하고 루트 사용자 암호를 설정하고 포트 확인 연결을 매핑하고 데이터베이스를 작성하고 사용자는 데이터베이스에 모든 권한을 부여합니다.

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

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

Docker 컨테이너를 다시 시작하는 방법 : 컨테이너 ID (Docker PS)를 가져옵니다. 컨테이너 중지 (Docker Stop & lt; container_id & gt;); 컨테이너를 시작하십시오 (Docker start & lt; container_id & gt;); 재시작이 성공했는지 확인하십시오 (Docker PS). 기타 방법 : Docker Compose (Docker-Compose Restart) 또는 Docker API (Docker 문서 참조).

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

도커 프로세스보기 방법 : 1. Docker CLI 명령 : Docker PS; 2. Systemd Cli 명령 : SystemCTL 상태 Docker; 3. Docker Compose CLI 명령 : Docker-Compose PS; 4. 프로세스 탐색기 (Windows); 5. /Proc Directory (Linux).

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