programing

도커 설정 변경 후 MariaDB 데이터가 손실됩니까?

sourcetip 2022. 9. 12. 12:22
반응형

도커 설정 변경 후 MariaDB 데이터가 손실됩니까?

기본적으로 Kitematic UI를 사용하여 컨테이너를 시작하고 설정을 변경한 후 Docker에서 실행되는 기본 MariaDB 인스턴스를 설정했습니다.

오늘은 백업을 만들고 싶었기 때문에 Kitematic을 사용하여 포트를 변경했습니다.그러면 기계에서 포트에 액세스하여 자동 백업을 할 수 있습니다.Kitematic에서 포트를 변경한 후 새로운 MariaDB 컨테이너가 시작된 것 같습니다(모든 데이터가 삭제된 것 같습니다).

그게 예상된 행동인가요?그리고 더 중요한 것은 없어 보이는 데이터를 복구할 방법이 있는지, 아니면 완전히 제거되었는지 여부입니다.

또, 데이터가 실제로 삭제되었을 경우, 모든 변경을 잃지 않고, 공개 포토등의 설정을 변경할 수 있는 바람직한 방법은 무엇입니까. docker commit?

주의:

  • OS X용 도커 1.12.0 베타 실행
  • docker -ps a원본이 며칠 동안 가동되었을 때 데이터베이스 상태가 "Up for X minutes"로 표시됩니다.

잘 부탁드립니다!

갱신:

(볼륨 등을 작성하지 않고) 데이터를 유지하는 권장 절차는 다음과 같습니다.

  1. 변경을 커밋합니다(예:docker commit <containerid> <name/tag>)
  2. 컨테이너를 오프라인으로 하다
  3. 노출된 포트 등의 설정 업데이트
  4. 커밋된 변경으로 이미지를 실행하다

...이 대답에서 따왔다.

네, 이것은 예상되는 동작입니다.데이터를 영속적으로 유지하려면 호스트에서 볼륨을 마운트해야 합니다.--volume에 대한 선택권.docker run또는 다른 컨테이너에서 데이터베이스 파일을 이 볼륨에 저장합니다.

docker run --volume /path/on/your/host/machine:/var/lib/mysql mariadb

변경 손실은 실제로 컨테이너의 핵심 기능이기 때문에 생략할 수 없습니다.이 방법을 통해 모든 데이터 간의docker run아무런 변화 없이 신선한 환경을 얻을 수 있습니다.변경을 영속적으로 하려면 이미지에서 변경을 해야 합니다.Dockerfile, 컨테이너 자체가 아닙니다.

상세한 것에 대하여는, 공식 메뉴얼(https://docs.docker.com/engine/tutorials/dockervolumes/ 를 참조해 주세요.

컨테이너 볼륨을 특정 경로에 마운트하지 않은 것 같습니다.볼륨 및 컨테이너에 저장되는 데이터에 대한 자세한 내용은 여기를 참조하십시오.

볼륨 옵션과 함께 컨테이너 실행 필요

$ docker run --name some-mariadb -v /my/own/datadir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mariadb:tag

어디에/my/own/datadir호스트 시스템의 디렉토리입니다.

언급URL : https://stackoverflow.com/questions/38935619/is-mariadb-data-lost-after-docker-setting-change

반응형