JSCODE Logo
프로그래밍 과외블로그후기멘토진
회사명 : JSCODE대표 : 박재성사업자 등록번호 : 244-22-01557통신판매업 : 제 2023-인천미추홀-0381 호
학원 명칭 : 제이에스코드(JSCODE)원격학원학원설립ㆍ운영 등록번호 : 제6063호

서울특별시 구로구 경인로 20가길 11(오류동, 아델리아)

Copyright ⓒ 2025 JSCODE - 최상위 현업 개발자들의 프로그래밍 교육 All rights reserved.

이용약관개인정보처리방침
← 블로그 목록으로 돌아가기

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

JSCODE 박재성
JSCODE 박재성
2025-12-01
author
JSCODE 박재성
category
Docker
createdAt
Dec 1, 2025
series
비전공자도 이해할 수 있는 Docker 입문
slug
run-mysql-with-docker-3
type
post
updatedAt
Dec 8, 2025 07:21 AM

✅ 볼륨(Volume)을 활용해 MySQL 컨테이너 띄우기

  1. MySQL 컨테이너 띄우기
    1. 📖
      Docker Volume(도커 볼륨)
      $ cd /Users/jaeseong/Documents/Develop $ mkdir docker-mysql # MySQL 데이터를 저장하고 싶은 폴더 만들기 # docker run -e MYSQL_ROOT_PASSWORD=password123 -p 3306:3306 -v {호스트의 절대경로}/mysql_data:/var/lib/mysql -d mysql $ docker run -e MYSQL_ROOT_PASSWORD=password123 -p 3306:3306 -v /Users/jaeseong/Documents/Develop/docker-mysql/mysql_data:/var/lib/mysql -d mysql
  • pwd 명령어로 볼륨으로 사용하고자 하는 경로를 확인한 뒤 입력해주자.
    • 윈도우의 경우 아래와 같이 경로가 작성될 수 있다.
      • # 예시 $ docker run -e MYSQL_ROOT_PASSWORD=password123 -p 3306:3306 -v C:/Users/jaeseong/js-mysql:/var/lib/mysql -d mysql
  • 주의) mysql_data 디렉토리를 미리 만들어 놓으면 안 된다. 그래야 처음 이미지를 실행시킬 때 mysql 내부에 있는 /var/lib/mysql 파일들을 호스트 컴퓨터로 공유받을 수 있다. mysql_data 디렉토리를 미리 만들어놓을 경우, 기존 컨테이너의 /var/lib/mysql 파일들을 전부 삭제한 뒤에 mysql_data로 덮어씌워 버린다.
  • DB에 관련된 데이터가 저장되는 곳이 /var/lib/mysql인지는 Dockerhub MySQL의 공식 문서에 나와있다.
    • notion image
       
  1. MySQL 컨테이너에 접속해서 데이터베이스 만들기
    1. $ docker exec -it [MySQL 컨테이너 ID] bash $ mysql -u root -p mysql> show databases; mysql> create database mydb; mysql> show databases;
 
 
  1. 컨테이너 종료 후 다시 생성해보기
    1. # 컨테이너 종료 $ docker stop [MySQL 컨테이너 ID] $ docker rm [MySQL 컨테이너 ID] # 컨테이너 생성 $ docker run -e MYSQL_ROOT_PASSWORD=password123 -p 3306:3306 -v /Users/jaeseong/Documents/Develop/docker-mysql/mysql_data:/var/lib/mysql -d mysql $ docker exec -it [MySQL 컨테이너 ID] bash $ mysql -u root -p mysql> show databases; # 아까 생성한 데이터베이스가 그대로 존재하는 걸 확인할 수 있다.
 
 

✅ 그림으로 이해하기

notion image
 
 

✅ MySQL 컨테이너 삭제하고 다시 띄워보기

# 컨테이너 종료 $ docker stop [MySQL 컨테이너 ID] $ docker rm [MySQL 컨테이너 ID] # 비밀번호 바꿔서 컨테이너 생성 $ docker run -e MYSQL_ROOT_PASSWORD=pwd1234 -p 3306:3306 -v /Users/jaeseong/Documents/Develop/docker-mysql/mysql_data:/var/lib/mysql -d mysql $ docker exec -it [MySQL 컨테이너 ID] bash $ mysql -u root -p # 접속이 안 됨...
분명 MYSQL_ROOT_PASSWORD 값을 바꿔서 새로 컨테이너를 띄웠는데 비밀번호는 바뀌지 않은걸까? 이 부분 때문에 많은 분들이 헤맨다. 그 이유는 Volume으로 설정해둔 폴더에 이미 비밀번호 정보가 저장되버렸기 때문이다.
 
author
category
Docker
createdAt
series
비전공자도 이해할 수 있는 Docker 입문
slug
type
series-footer
updatedAt
Jan 12, 2026 12:04 AM
📎
이 글은 비전공자도 이해할 수 있는 MySQL 성능 최적화 입문/실전 (SQL 튜닝편) 강의의 수업 자료 중 일부입니다.