작성
·
193
0
윈도우 환경에서 wls을 이용하여 docker를 돌리고 있습니다.
docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=admin1234 -v /mnt/c/users/lucig/Downloads/docker-mysql/mydata:/var/lib/mysql mysql
2876a8df0041c8cfefdde95d874bf0d87182d3320a1ee8fa417b41128cd9925e
위에처럼 컨테이너가 뜬 이후에
exec -it로 접속하려고하면 접속이 안되서 로그를 확인해보니
docker logs -f 2876
2025-04-17 06:16:09+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 9.3.0-1.el9 started.
2025-04-17 06:16:09+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
2025-04-17 06:16:09+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 9.3.0-1.el9 started.
2025-04-17 06:16:10+00:00 [Note] [Entrypoint]: Initializing database files
2025-04-17T06:16:10.096316Z 0 [System] [MY-015017] [Server] MySQL Server Initialization - start.
2025-04-17T06:16:10.097629Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 9.3.0) initializing of server in progress as process 80
2025-04-17T06:16:10.109461Z 0 [Warning] [MY-010159] [Server] Setting lower_case_table_names=2 because file system for /var/lib/mysql/ is case insensitive
2025-04-17T06:16:10.127422Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2025-04-17T06:16:11.839040Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
mysqld: Cannot change permissions of the file 'ca.pem' (OS errno 1 - Operation not permitted)
2025-04-17T06:16:14.379413Z 0 [ERROR] [MY-010295] [Server] Could not set file permission for ca.pem
2025-04-17T06:16:14.379482Z 0 [ERROR] [MY-013236] [Server] The designated data directory /var/lib/mysql/ is unusable. You can remove all files that the server added to it.
2025-04-17T06:16:14.379504Z 0 [ERROR] [MY-010119] [Server] Aborting
2025-04-17T06:16:16.112226Z 0 [System] [MY-015018] [Server] MySQL Server Initialization - end.
이렇게 나오는데
가장 쉬운 방법은 어떤것이있을까요?
클로드는 아래처럼 답변을 주더라고요
2. 도커 볼륨 사용
Windows 경로를 직접 마운트하는 대신 도커 볼륨을 사용하는 것이 더 안정적입니다:
bash# 도커 볼륨 생성
docker volume create mysql-data
# 볼륨을 사용하여 MySQL 컨테이너 실행
docker run -d -p 3306:3306 --name mysql \
-e MYSQL_ROOT_PASSWORD=admin1234 \
-v mysql-data:/var/lib/mysql \
mysql
도커 볼륨을 사용해도 새로생성한 컨테이너가 데이터를 그대로 사용할 수 있는걸까요?
답변 2
0
안녕하세요 이성님! 질문 잘 해주셨습니다:)
경로를 입력하실 때 /mnt/c/users/lucig/Downloads/docker-mysql/mydata
로 입력하지 말고
C://users/lucig ...
의 형태로 윈도우의 실제 경로로 한 번 입력해보시겠어요~??
윈도우의 경로로 입력했는데도 정상적으로 실행이 안 되신다면
입력하신 명령어와 에러 메시지도 다시 한 번만 댓글 달아주세요~!!
0
안녕하세요, 인프런 AI 인턴입니다. 이성님.
현재 WSL 환경에서 Docker를 사용하여 MySQL 컨테이너를 실행 중 발생하는 문제에 대해 도움을 드리겠습니다. 로그에 보이는 오류는 파일 시스템의 권한 문제와 관련되어 있으며, 주로 WSL의 파일 시스템 차이에서 기인할 가능성이 큽니다.
로그에서 ca.pem
파일의 권한을 변경할 수 없다는 오류는, WSL의 파일 시스템이 MySQL 컨테이너에서 기대하는 방식으로 작동하지 않기 때문입니다. 일반적으로 Windows 경로 (/mnt/c/…)를 마운트할 때 이러한 문제가 발생할 수 있습니다.
# 도커 볼륨 생성
docker volume create mysql-data
# 볼륨을 사용하여 MySQL 컨테이너 실행
docker run -d -p 3306:3306 --name mysql \
-e MYSQL_ROOT_PASSWORD=admin1234 \
-v mysql-data:/var/lib/mysql \
mysql
metadata
옵션을 추가하여 마운트하는 방법을 시도해볼 수 있습니다. 예시로는 WSL 터미널에서 다음 명령어를 통해 수행할 수 있습니다: sudo mount -t drvfs C: /mnt/c -o metadata,umask=22,fmask=11
Docker 볼륨을 사용하면 기존 데이터를 모두 포함한 새로운 파일 시스템을 만들므로 데이터가 손실되는 일이 없습니다. 결과적으로, 이 방법은 데이터를 안전하게 관리하고 보존하는 데 매우 효과적입니다. 데이터가 처음 생성될 때의 상태만 유지되지만, 같은 볼륨을 계속 사용하면 해당 데이터가 유지됩니다.
저는 질문자님의 이해를 돕고자, 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해 드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
/mnt를 제외한 윈도우 경로로 설정했을때도 결국에 되지는 않았고
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=admin1234 -v mydata:/var/lib/mysql mysql
형태로 리눅스 경로에 폴더를 지정해서 실행하는 형태로 해결 했습니다.