JSCODE Logo
JSCODE 박재성JSCODE 제이온JSCODE 시니
온라인 강의프로그래밍 과외책/전자책무료 강의
유튜브블로그
후기
완강 후기 이벤트블로그 리뷰 이벤트AWS SAA 합격 후기 이벤트
회사명 : JSCODE대표 : 박재성사업자 등록번호 : 244-22-01557통신판매업 : 제 2023-인천미추홀-0381 호

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

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

이용약관개인정보처리방침

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

Docker 기본 개념

Docker를 왜 배우는 걸까?
Docker란 ? / 컨테이너(Container)란? / 이미지(Image)란?
Docker 설치 (Windows, Mac OS)
[실습] Docker 전체 흐름 느껴보기 (Nginx 설치 및 실행)

현업에서 자주 사용하는 Docker CLI 익히기

Docker 이미지(Image) 다운로드
Docker 이미지(Image) 조회 / 삭제
Docker 컨테이너(Container) 생성 / 실행 - 1
Docker 컨테이너(Container) 생성 / 실행 - 2
Docker 컨테이너(Container) 조회 / 중지 / 삭제
Docker 컨테이너(Container) 로그 조회
Docker 실행중인 컨테이너 내부에 접속하기 (exec -it)
[실습] Docker로 Redis 실행시켜보기

도커 볼륨을 활용해 데이터 유실 방지하기

Docker Volume(도커 볼륨)
[보충 자료] Windows에서 lsof, kill, sudo 명령어가 작동하지 않을 때 대처 방법
[실습] Docker로 MySQL 실행시켜보기 - 1
[실습] Docker로 MySQL 실행시켜보기 - 2
[실습] Docker로 MySQL 실행시켜보기 - 3
[실습] Docker로 PostgreSQL 실행시켜보기
[실습] Docker로 MongoDB 실행시켜보기

Dockerfile 활용해 이미지 직접 만들기

Dockerfile이란?
FROM : 베이스 이미지 생성
[실습] FROM : 베이스 이미지 생성
종료된 컨테이너에 들어가서 디버깅하고 싶을 때
COPY : 파일 복사(이동)
ENTRYPOINT : 컨테이너가 시작할 때 실행되는 명령어
[실습] 백엔드 프로젝트(Spring Boot) 프로젝트를 Docker로 실행시키기
RUN : 이미지를 생성하는 과정에서 사용할 명령문 실행
WORKDIR : 작업 디렉토리를 지정
EXPOSE : 컨테이너 내부에서 사용 중인 포트를 문서화하기
[실습] 백엔드 프로젝트(Nest.js)를 Docker로 실행시키기
[실습] 웹 프론트엔드 프로젝트(Next.js)를 Docker로 배포하기
[실습] 웹 프론트엔드 프로젝트(HTML, CSS, Nginx)를 Docker로 배포하기

Docker Compose를 활용해 컨테이너 관리하기

Docker Compose를 사용하는 이유
[실습] Docker Compose 전체 흐름 느껴보기 (Nginx 설치 및 실행)
자주 사용하는 Docker Compose CLI 명령어
[실습] Docker Compose로 Redis 실행시키기
[실습] Docker Compose로 MySQL 실행시키기
[실습] Docker Compose로 백엔드(Spring Boot) 실행시키기
[실습] Docker Compose로 백엔드(Nest.js) 실행시키기
[실습] Docker Compose로 프론트엔드(Next.js) 실행시키기
[실습] Docker Compose로 프론트엔드(HTML, CSS, Nginx) 실행시키기
Docker CLI ↔ Docker Compose 쉽게 작성하기

Docker Compose를 활용해 2개 이상의 컨테이너 관리하기

[실습] MySQL, Redis 컨테이너 동시에 띄워보기
[실습] Spring Boot, MySQL 컨테이너 동시에 띄워보기
컨테이너로 실행시킨 Spring Boot가 MySQL에 연결이 안 되는 이유
[실습] Spring Boot, MySQL, Redis 컨테이너 동시에 띄워보기

AWS EC2에서 Docker를 활용해 배포해보기

Ubuntu에서 Docker, Docker Compose 설치하기
AWS ECR(Elastic Container Registry)이 뭘까? 왜 배울까?
[실습] AWS ECR(Elastic Container Registry) 사용해보기
[실습] AWS EC2에 Docker + Spring Boot 배포하기
[실습] AWS EC2에 Docker + Spring Boot, MySQL, Redis 배포하기
← 블로그 목록으로 돌아가기

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

JSCODE 박재성
JSCODE 박재성
2026. 03. 22.
author
JSCODE 박재성
category
Docker
createdAt
Dec 1, 2025 06:46 PM
isPublic
isPublic
series
비전공자도 이해할 수 있는 Docker 입문
slug
run-mysql-with-docker-3
type
post
updatedAt
Mar 22, 2026 09:00

✅ 볼륨(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으로 설정해둔 폴더에 이미 비밀번호 정보가 저장되버렸기 때문이다.
 
📎
이 글은 비전공자도 이해할 수 있는 Docker 입문/실전 강의의 수업 자료 중 일부입니다.