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

Docker 컨테이너를 다시 시작하면 데이터가 손실되나요?

WBOY
WBOY원래의
2022-06-17 10:41:0011036검색

Docker 컨테이너가 다시 시작되면 데이터가 손실되지만 볼륨 또는 "데이터 컨테이너"를 사용하여 컨테이너를 닫은 후 "-v" 또는 "--volumes-from"을 사용할 수 있습니다. 이전 데이터 재사용, docker 호스트 디스크 디렉터리를 마운트하여 데이터를 영구적으로 저장할 수도 있습니다.

Docker 컨테이너를 다시 시작하면 데이터가 손실되나요?

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

Docker 컨테이너를 다시 시작하면 데이터가 손실되나요?

예, Docker를 사용하여 웹 애플리케이션이나 mysql 데이터베이스를 배포할 때 컨테이너를 다시 시작하면 실행 중에 로그나 데이터베이스 데이터가 생성됩니다. 컨테이너가 삭제됩니다.

데이터 지속성을 원한다면 볼륨이나 데이터 컨테이너를 사용해야 컨테이너가 닫힌 후 -v 또는 --volumes-from을 통해 이전 데이터를 재사용할 수 있습니다. Docker는 호스트 디스크 디렉터리를 마운트하여 데이터를 영구적으로 저장합니다.

컨테이너 생성 시 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 옵션으로 지정되는 test입니다.

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

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 )를 나타냅니다. 대상은 컨테이너의 디렉터리(/tmp/destination)입니다.

기본 파일을 컨테이너에 동기화할 수 있습니다

local/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/에 동기화될 수 있습니다.

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

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으로 문의하세요.