inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

비전공자도 이해할 수 있는 Docker 입문/실전

[실습] Docker로 MySQL 실행시켜보기 - 3

호스트 컴퓨터에서 폴더를 삭제하면?

88

이수경

작성한 질문수 1

0

안녕하세요, 질문 있습니다!
마지막 부분에서 초기 비밀번호 외에 새로 생성한 비밀번호로는 새로 생성할 수 없다고 하셨는데,
호스트 컴퓨터의 폴더를 삭제하고 다시 생성하는 경우
이전에 생성했던 데이터베이스도 모두 삭제되는 게 맞을까요?
: 호스트 컴퓨터의 폴더를 삭제하면 데이터도 삭제로 이해면 될지 답변부탁드립니다.

(유익한 강의 즐겁게 수강중입니당.. 감사합니다.)

docker docker-compose docker-volume docker-image container ecr

답변 2

0

JSCODE 박재성

안녕하세요 수경님 ! 강의 잘 들어주셔서 감사합니다~~

질문해주신 내용에 대해 답변 드려볼게요!!

 

"호스트 컴퓨터 폴더를 삭제하면 데이터도 삭제되는 게 맞나요?"

네 맞습니다! 호스트 컴퓨터의 볼륨 폴더를 삭제하면

이전에 생성했던 데이터베이스와 모든 데이터가 완전히 삭제됩니다 !

 

Docker에서 아래처럼 -v 옵션 또는 volumes 설정을 통해

-v /Users/jaeseong/Documents/Develop/docker-mysql/mysql_data:/var/lib/mysql

이렇게 호스트의 mysql_data 폴더와 컨테이너 내부의 /var/lib/mysql 폴더를 연결하는 구조예요~

 

MySQL은 모든 데이터를 /var/lib/mysql 안에 저장하기 때문에

호스트의 mysql_data 폴더가 삭제되면 → 데이터베이스, 테이블, 사용자 계정까지 다 날아가게 됩니다!

-> 초기 비밀번호 외에 새로운 비밀번호로 생성할 수 없는 이유도 해당 이유 때문이죠 :)

 

MySQL이 처음 실행될 때 MYSQL_ROOT_PASSWORD로 초기 설정을 하는데,

이 설정 정보도 볼륨에 저장되요 !

따라서 볼륨이 남아있는 상태에서 다른 비밀번호로 재시작하려고 해도,

기존 설정이 우선되어 새로운 비밀번호 설정이 무시되죠 :)

 

요약해서 다시 정리해드리자면

호스트 폴더 삭제 -> 모든 MySQL 데이터 삭제

볼륨을 삭제하고 다시 생성하면 -> 완전히 새로운 MySQL 환경으로 시작

이런 식으로 이해하시면 됩니다~!!

 

추가로 궁금하신 점 있으시면 언제든 질문 남겨주세요 ~~

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 이수경님.

Docker에서 볼륨을 사용하여 데이터를 관리할 때, 호스트의 특정 디렉토리에 데이터를 저장하게 됩니다. 따라서 호스트 컴퓨터의 폴더를 삭제하면, 그 폴더에 저장된 데이터 역시 삭제됩니다. 이를 통해 Docker 컨테이너와 관련된 데이터베이스나 다른 저장된 데이터들이 사라지게 되는 것이죠.

Docker 볼륨과 데이터 지속성

  1. 데이터 저장: Docker 볼륨은 데이터를 보존하고, 컨테이너를 삭제해도 볼륨에 저장된 데이터는 남아 있게 됩니다. 이는 데이터의 지속성을 위해 매우 유용합니다.

  2. 폴더 삭제 시: 만약 호스트 컴퓨터에서 볼륨으로 사용하던 폴더를 삭제하게 되면, 그 안에 있던 데이터가 삭제됩니다. 이는 데이터베이스나 기타 중요한 파일이 포함될 수 있습니다.

  3. 데이터 복구 불가: 폴더를 삭제하면 해당 데이터는 복구할 수 없으므로 중요 데이터를 삭제하게 되지 않도록 주의가 필요합니다.

따라서 호스트 컴퓨터의 폴더를 삭제하는 경우에는 데이터 역시 함께 삭제되며, 철저한 백업 정책을 유지하는 것이 중요합니다.

유사한 문제나 관련된 질문이 있는 다른 학습자의 사례가 있을 수 있습니다. 다음의 링크를 참고해 보시면 도움이 될 수 있습니다:
- 디렉토리를 만들고 -v 옵션 사용 시: Docker 볼륨과 디렉토리의 상호 작용에 대한 자세한 설명을 담고 있는 질문입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

EC2 터미널에서 docker pull

0

66

2

AWS ECR

0

61

2

FROM openjdk:17-jdk 현재 기준 dockerhub에 없습니다

1

112

2

Redis 볼륨 설정?

0

124

2

컨테이너의 IP

0

88

2

도커 이미지를 만들 때 application.yml

0

110

2

compose.yml 관리

0

97

2

ECR 리포지토리에 이미지가 3개가 보입니다.

0

83

2

액세스 키 등록하는 시점 관련 질문이 있습니다.

0

89

1

depends_on에 따른 컨테이너 실행 순서

0

81

2

실제 웹 서비스 배포 시 질문

0

86

2

도커 volume 질문

0

69

3

HTTPS로도 받고 싶으면 docker compose에 443도 쓰면 될까요?

0

79

2

sql 볼륨 폴더 지우면 데이터베이스 데이터 날라가는거 아닌가요?

0

78

2

39강 도커파일 빌드 경로 질문이 있습니다.

0

76

2

도커파일 copy

0

77

2

실무에서 docker compose up --build를 할 때

0

227

2

mysql_data 폴더 내부에 다른 파일이 있는데도 잘 되는 경우

0

93

2

도커 허브에서 postgres 버전 확인하는 법

0

143

2

보충 자료와도 관련된 추가 내용

1

85

1

현업에서 MySQL은 RDS와 도커 볼륨 중 어떤 걸 사용하나요?

0

117

2

노션 자료에 안 보이는 이미지가 있습니다

0

107

1

도커 허브에서의 latest가 가장 최신인 게 맞나요?

0

129

2

docker image ls 실행 시 나오는 내용이 다릅니다

0

92

2