인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

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

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

volume 관련 부분 mysql로 실행

작성

·

53

·

수정됨

0

강의처럼 myDB라는 DB를 만들고 컨테이너 삭제 후, 다시 실행했을때 그 DB가 남아있는지 확인해봤는데 안남아있네요.
아래의 로그는 제가 했을때의 로그입니다!

d----- 2025-04-06 오후 11:25 docker-mysql

PS C:\Users\icb16\dockervolume> cd docker-mysql

PS C:\Users\icb16\dockervolume\docker-mysql> docker run -e MYSQL_ROOT_PASSWORD=password123 -v C:\Users\icb16\dockervolume\docker-mysql -d mysql

24f951c78cbf0dab6bea6b4b8deaf8f29781ae613b3cad782bbf569e44acbda3

PS C:\Users\icb16\dockervolume\docker-mysql> docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

24f951c78cbf mysql "docker-entrypoint.s…" 12 seconds ago Up 11 seconds 3306/tcp, 33060/tcp optimistic_elion

PS C:\Users\icb16\dockervolume\docker-mysql> docker rm -f 24f951

24f951

PS C:\Users\icb16\dockervolume\docker-mysql> docker run -e MYSQL_ROOT_PASSWORD=password123 -d -p 3306:3306 -v C:\Users\icb16\dockervolume\docker-mysql\mysql_data:\var\lib\mysql -d mysql

068022ff288d2e9b7a4605e1da688688a43a14c9e0c1d31041d86067466d62a2

PS C:\Users\icb16\dockervolume\docker-mysql> docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

068022ff288d mysql "docker-entrypoint.s…" 3 minutes ago Up 3 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp friendly_hypatia

PS C:\Users\icb16\dockervolume\docker-mysql> docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

068022ff288d mysql "docker-entrypoint.s…" 5 minutes ago Up 5 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp friendly_hypatia

PS C:\Users\icb16\dockervolume\docker-mysql> docker exec -it 0680

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\icb16\dockervolume\docker-mysql> docker exec -it 0680 bash

bash-5.1# ls

'\var\lib\mysql' bin dev etc lib media opt root sbin sys usr

afs boot docker-entrypoint-initdb.d home lib64 mnt proc run srv tmp var

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.2.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.01 sec)

mysql> create database myDB

-> ;

Query OK, 1 row affected (0.01 sec)

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| myDB |

| mysql |

| performance_schema |

| sys |

+--------------------+

5 rows in set (0.00 sec)

mysql> ^C

mysql> ^C

mysql> ^C

mysql> exit

Bye

bash-5.1# exit

exit

PS C:\Users\icb16\dockervolume\docker-mysql> docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

068022ff288d mysql "docker-entrypoint.s…" 6 minutes ago Up 6 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp friendly_hypatia

PS C:\Users\icb16\dockervolume\docker-mysql> docker rm -f 068

068

PS C:\Users\icb16\dockervolume\docker-mysql> docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

PS C:\Users\icb16\dockervolume\docker-mysql> docker run -e MYSQL_ROOT_PASSWORD=password123 -d -p 3306:3306 -v C:\Users\icb16\dockervolume\docker-mysql\mysql_data:\var\lib\mysql -d mysql

dcb75ed6d3fab0a0a320869e7728179f58299ec0e43b948408c599e8c9ecf089

PS C:\Users\icb16\dockervolume\docker-mysql> docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

dcb75ed6d3fa mysql "docker-entrypoint.s…" 14 seconds ago Up 13 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp zealous_spence

PS C:\Users\icb16\dockervolume\docker-mysql> docker exec -it dcb7

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\icb16\dockervolume\docker-mysql> docker exec -it dcb7 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.2.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.00 sec)

mysql>


답변 2

0

JSCODE 박재성님의 프로필 이미지
JSCODE 박재성
지식공유자

안녕하세요!

이 질문이 작성되자마자 삭제 된 것 같아서 혹시 아직 해결되지 않은 상태라면

댓글 한 번만 남겨주세요:D

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. 김은준님!

Docker에서 MySQL 컨테이너를 실행한 후 데이터베이스가 유지되지 않는 문제를 겪고 계신 것 같습니다. 이 문제는 주로 볼륨 마운트가 적절히 설정되지 않았거나, 경로 관련 이슈가 있을 때 발생할 수 있습니다.

다음은 이와 관련해 고려해보아야 할 점들입니다:

  1. 볼륨 경로 확인:

    • Docker에서 호스트 시스템에 데이터를 지속적으로 저장하려면 -v 옵션으로 볼륨을 올바르게 마운트해야 합니다. 현재 사용 중인 경로 C:\Users\icb16\dockervolume\docker-mysql\mysql_data가 실제로 사용 가능한 경로인지, 그리고 Docker가 해당 경로를 쓸 수 있는 권한이 있는지 확인해보세요. 윈도우에서 경로는 종종 첫 실행 때 만들어지지 않거나 권한 문제로 인해 쓰기가 불가능할 수 있습니다.
  2. WSL 환경 사용 시 주의사항:

    • 윈도우에서는 Docker Desktop과 WSL2를 함께 사용할 경우 경로 호환성 문제가 있을 수 있습니다. 마운트를 시도할 때, WSL2 환경에서 Docker에 접근시 마운트 경로 형식을 Linux 스타일로 바꿔보세요. 예를 들어 /mnt/c/... 형식으로 변경이 필요할 수 있습니다.
  3. 동일한 경로 사용 여부:

    • 여러 개의 컨테이너를 반복적으로 시작할 때 동일한 docker run 명령어를 사용하는 경우, 볼륨 경로가 동일해야 데이터를 지속적으로 유지할 수 있습니다.

관련된 정보를 얻을 수 있는 유사한 질문 및 해결 방법에 관한 게시물을 소개해드리겠습니다:

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

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기