도커 설정 변경 후 MariaDB 데이터가 손실됩니까?
기본적으로 Kitematic UI를 사용하여 컨테이너를 시작하고 설정을 변경한 후 Docker에서 실행되는 기본 MariaDB 인스턴스를 설정했습니다.
오늘은 백업을 만들고 싶었기 때문에 Kitematic을 사용하여 포트를 변경했습니다.그러면 기계에서 포트에 액세스하여 자동 백업을 할 수 있습니다.Kitematic에서 포트를 변경한 후 새로운 MariaDB 컨테이너가 시작된 것 같습니다(모든 데이터가 삭제된 것 같습니다).
그게 예상된 행동인가요?그리고 더 중요한 것은 없어 보이는 데이터를 복구할 방법이 있는지, 아니면 완전히 제거되었는지 여부입니다.
또, 데이터가 실제로 삭제되었을 경우, 모든 변경을 잃지 않고, 공개 포토등의 설정을 변경할 수 있는 바람직한 방법은 무엇입니까. docker commit
?
주의:
- OS X용 도커 1.12.0 베타 실행
docker -ps a
원본이 며칠 동안 가동되었을 때 데이터베이스 상태가 "Up for X minutes"로 표시됩니다.
잘 부탁드립니다!
갱신:
(볼륨 등을 작성하지 않고) 데이터를 유지하는 권장 절차는 다음과 같습니다.
- 변경을 커밋합니다(예:
docker commit <containerid> <name/tag>
) - 컨테이너를 오프라인으로 하다
- 노출된 포트 등의 설정 업데이트
- 커밋된 변경으로 이미지를 실행하다
...이 대답에서 따왔다.
네, 이것은 예상되는 동작입니다.데이터를 영속적으로 유지하려면 호스트에서 볼륨을 마운트해야 합니다.--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
'programing' 카테고리의 다른 글
utf8_general_ci와 utf8_unicode_ci의 차이점은 무엇입니까? (0) | 2022.09.19 |
---|---|
기본 .equals 및 .hashCode는 내 클래스에서 어떻게 작동합니까? (0) | 2022.09.19 |
다른 열의 순서를 기준으로 그룹에서 값 하나를 선택합니다. (0) | 2022.09.12 |
JavaScript에서 ISO 8601 형식의 문자열을 출력하려면 어떻게 해야 합니까? (0) | 2022.09.12 |
MariaDB 키별 값 개수 선택 (0) | 2022.09.12 |