>  기사  >  운영 및 유지보수  >  Docker 컨테이너를 중지하면 데이터가 손실되나요?

Docker 컨테이너를 중지하면 데이터가 손실되나요?

青灯夜游
青灯夜游원래의
2022-02-23 16:38:1512509검색

Docker 컨테이너를 중지하면 데이터가 손실되지 않습니다. 도커 컨테이너가 중지되고 종료되면 해당 컨테이너의 데이터는 손실되지 않으며 컨테이너가 삭제된 경우에만 "docker ps -a"를 통해 볼 수 있습니다. 컨테이너 삭제.

Docker 컨테이너를 중지하면 데이터가 손실되나요?

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

Docker 컨테이너를 중지하면 데이터가 손실되지 않습니다.

Docker 컨테이너가 중지되고 종료되면 종료 상태가 되며, 이는 가상 머신을 종료하는 것과 동일하므로 데이터 손실이 없습니다.

이때는 docker ps -a를 통해 볼 수 있고, docker start를 통해서도 시작할 수 있습니다. 컨테이너를 삭제해야만 데이터가 지워집니다.

docker rm 후에만 컨테이너를 삭제하면 데이터가 지워집니다.

컨테이너를 만든 다음 컨테이너를 삭제하면 데이터도 삭제됩니다.

데이터를 삭제하지 않고 컨테이너를 삭제하는 방법dockerrun-vhost_dir:containere_dir이렇게 하면 문제가 해결될 수 있습니다!

추가 지식: 컨테이너를 다시 시작하면 컨테이너 실행 중에 생성된 로그 또는 데이터베이스 데이터가 지워집니다.

해결책:

Docker는 호스트 디스크 디렉터리를 마운트하여 데이터를 영구적으로 저장할 수 있습니다.

1. 컨테이너 생성 시 Docker 볼륨 실행

docker run 명령을 사용하여 Docker 컨테이너를 실행하고, ubuntu/nginx 이미지를 사용하고, 로컬 디렉터리 /tmp/source를 컨테이너 디렉터리 /tmp/destination

docker run -itd --volume /tmp/source:/tmp/destination --name test ubuntu/nginx bash

에 마운트합니다. ubuntu/를 기반으로 nginx 이미지는 Docker 컨테이너를 생성합니다.

––name 옵션으로 지정되는 테스트로 컨테이너 이름을 지정합니다.

Docker 볼륨은 ––volume(-v로 축약 가능) 옵션으로 지정됩니다. 호스트의 /tmp/source 디렉터리는 컨테이너의 /tmp/destination 디렉터리에 해당합니다.

2. Docker 볼륨 보기

docker Inspection 명령을 사용하여 Docker 컨테이너의 세부 정보를 확인하세요.

docker inspect --format=’{{json .Mounts}}'test | python -m json.tool[{“Destination”: “/tmp/destination”,“Mode”: “”,“Propagation”: “”,“RW”: true,“Source”: “/tmp/source”,“Type”: “bind”}]

필수 컨테이너 정보를 선택적으로 보려면 ––format 옵션을 사용하세요. .Mount는 컨테이너의 Docker 볼륨 정보입니다.

python -m json.tool은 출력 json 문자열의 형식을 지정하고 표시할 수 있습니다.

Source는 호스트의 디렉토리인 /tmp/source를 나타냅니다.

Destination은 컨테이너의 디렉터리(/tmp/destination)입니다.

3. 네이티브 파일을 컨테이너에 동기화할 수 있습니다

native/tmp/source 디렉터리에 새 hello.txt 파일을 만듭니다.

touch /tmp/source/hello.txtls /tmp/source/hello.txt

hello.txt 파일은 컨테이너/tmp/destination/디렉터리에 표시됩니다.

사용 docker exec 명령을 사용하면 컨테이너에서 명령을 실행할 수 있습니다.

docker exectest ls /tmp/destination/hello.txt

따라서 호스트의 /tmp/source/ 디렉터리에 대한 수정 사항은 컨테이너 디렉터리인 /tmp/destination/에 동기화될 수 있습니다.

4. 컨테이너 파일을 호스트에 동기화할 수 있습니다.

container/tmp/destination 디렉터리에 새 world.txt 파일을 만듭니다.

docker exec test touch /tmp/destination/world.txtdocker exec test ls /tmp/destination/hello.txtworld.txt

world.txt 파일은 호스트/tmp/source/ 디렉터리에 표시됩니다.

ls /tmp/source/hello.txt world.txt

추천 학습: "docker 비디오 튜토리얼"

위 내용은 Docker 컨테이너를 중지하면 데이터가 손실되나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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