volume 생성 후 DB 조회 시 동일한 DB 없음
186
작성한 질문수 1
PS C:\Users\SSAFY\Inflearn\docker-mysql> docker run -e MYSQL_ROOT_PASSWORD=$(비밀번호) -d -p 3306:3306 -v C:\Users\SSAFY\Inflearn\docker-mysql\mysql_data:\var\lib\mysql mysql
0b272839d37a21ba514052f486d744988addbbfd898f88e4bbb77383c1a35d6c
PS C:\Users\SSAFY\Inflearn\docker-mysql> docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0b272839d37a mysql "docker-entrypoint.s…" 14 seconds ago Up 13 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp unruffled_diffie
PS C:\Users\SSAFY\Inflearn\docker-mysql> docker exec -it 0b2 bash
bash-5.1# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 9.3.0 MySQL Community Server - GPL
Copyright (c) 2000, 2025, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.014 sec)
mysql> create database mydb;
Query OK, 1 row affected (0.024 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mydb |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.001 sec)
mysql> exit
Bye
bash-5.1# exit
exit
PS C:\Users\SSAFY\Inflearn\docker-mysql> docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0b272839d37a mysql "docker-entrypoint.s…" About a minute ago Up About a minute 0.0.0.0:3306->3306/tcp, 33060/tcp unruffled_diffie
PS C:\Users\SSAFY\Inflearn\docker-mysql> docker rm -f 0b2
0b2
PS C:\Users\SSAFY\Inflearn\docker-mysql> docker run -e MYSQL_ROOT_PASSWORD=$(비밀번호) -d -p 3306:3306 -v C:\Users\SSAFY\Inflearn\docker-mysql\mysql_data:\var\lib\mysql mysql
e0dbe2fa08d4ba1dec0442afacf5290a4c6ecef265be723e489b5d08f1ec237f
PS C:\Users\SSAFY\Inflearn\docker-mysql> docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e0dbe2fa08d4 mysql "docker-entrypoint.s…" 9 seconds ago Up 8 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp romantic_booth
PS C:\Users\SSAFY\Inflearn\docker-mysql> docker exec -it e0d
docker: 'docker exec' requires at least 2 arguments
Usage: docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
See 'docker exec --help' for more information
PS C:\Users\SSAFY\Inflearn\docker-mysql> docker exec -it e0d bash
bash-5.1# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 9.3.0 MySQL Community Server - GPL
Copyright (c) 2000, 2025, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.014 sec)강사님과 동일하게 volume 생성 후 다른 컨테이너로 접속 시 mydb가 조회되지 않습니다... 원인이 무엇인지 궁금합니다.
비밀번호는 암호화했습니다.
답변 2
0
안녕하세요 주희님! 질문 잘 해주셨습니다:)
아래 답변에 나와있는 해결 방법으로 한 번 시도 해보시겠어요~??
만약 위 링크에 있는 해결 방법으로도 해결 안 되시면 질문 또 남겨주세요!!
0
안녕하세요, 인프런 AI 인턴입니다. 김주희님.
Docker 컨테이너에서 볼륨을 사용하여 데이터베이스를 지속화하려는 과정에서 문제가 발생하신 것 같습니다. MySQL에서 볼륨을 사용할 때 데이터가 영구적으로 저장되지 않는 문제는 주로 볼륨 마운트의 경로 설정이나 볼륨의 초기화 문제에서 발생할 수 있습니다.
문제 분석
볼륨 마운트 경로 확인: 윈도우에서는 호스트 경로를 마운트할 때 경로의 형식이 매우 중요합니다. 예를 들어, 윈도우 경로는 백슬래시(
\) 대신 슬래시(/)를 사용해야 하며, 절대 경로를 사용할 때는"C:/Users/SSAFY/Inflearn/docker-mysql/mysql_data"와 같이 따옴표로 경로를 감싸서 사용하는 것이 권장됩니다.볼륨 초기화 문제: MySQL 컨테이너를 처음 실행할 때 데이터 디렉토리가 비어 있지 않으면, MySQL은 자체 초기화 과정을 건너뛰고 기존 데이터를 사용합니다. 이 과정에서 다른 컨테이너가 기존의 초기화된 데이터가 있는 디렉토리를 사용하면 데이터베이스 구성이 제대로 되지 않을 수 있습니다.
해결 방법
올바른 경로 설정: 호스트 경로를 사용할 때는 위에서 언급한 것처럼 슬래시(
/)와 따옴표로 경로를 감싸서 사용해 보십시오.볼륨을 새로 생성하여 사용: 아래 명령어로 데이터 저장을 보장하기 위해 Docker가 관리하는 자체 볼륨을 사용하는 방법입니다. 이는 경로 문제를 피하고 데이터 손실을 방지할 수 있습니다.
docker volume create mysql-data
docker run -e MYSQL_ROOT_PASSWORD=비밀번호 -d -p 3306:3306 -v mysql-data:/var/lib/mysql mysql
이 방법은 Docker 볼륨을 직접 생성하여 사용하는 것이기 때문에, 컨테이너가 삭제되더라도 데이터베이스 데이터는 보존됩니다.
추가 정보가 필요하시다면 다음의 유사한 질문을 참고해보세요:
- 윈도우 볼륨 생성 안되는 문제
- docker volume 생성 이후 container 종료
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
EC2 터미널에서 docker pull
0
62
2
AWS ECR
0
57
2
FROM openjdk:17-jdk 현재 기준 dockerhub에 없습니다
1
98
2
Redis 볼륨 설정?
0
114
2
컨테이너의 IP
0
79
2
도커 이미지를 만들 때 application.yml
0
102
2
compose.yml 관리
0
86
2
ECR 리포지토리에 이미지가 3개가 보입니다.
0
76
2
액세스 키 등록하는 시점 관련 질문이 있습니다.
0
82
1
depends_on에 따른 컨테이너 실행 순서
0
75
2
실제 웹 서비스 배포 시 질문
0
80
2
도커 volume 질문
0
66
3
HTTPS로도 받고 싶으면 docker compose에 443도 쓰면 될까요?
0
71
2
sql 볼륨 폴더 지우면 데이터베이스 데이터 날라가는거 아닌가요?
0
71
2
39강 도커파일 빌드 경로 질문이 있습니다.
0
67
2
도커파일 copy
0
69
2
실무에서 docker compose up --build를 할 때
0
183
2
mysql_data 폴더 내부에 다른 파일이 있는데도 잘 되는 경우
0
83
2
도커 허브에서 postgres 버전 확인하는 법
0
127
2
보충 자료와도 관련된 추가 내용
1
81
1
현업에서 MySQL은 RDS와 도커 볼륨 중 어떤 걸 사용하나요?
0
108
2
노션 자료에 안 보이는 이미지가 있습니다
0
99
1
도커 허브에서의 latest가 가장 최신인 게 맞나요?
0
118
2
docker image ls 실행 시 나오는 내용이 다릅니다
0
86
2





