FastAPI/데이터베이스

MySQL 컨테이너 실행

hyunai 2026. 5. 19. 22:35

Docker 설치 확인

docker -v
============================================================
아래처럼 Docker 버전이 출력돼야된다.
Docker version 29.4.2, build 055a478

Docker 컨테이너를 동작

docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=todos -e MYSQL_DATABASE=todos -d -v todos:/db --name todos mysql:8.0
  • -p 3306:3306 : 포트를 매핑해주는 명령어
    • MySQL은 기본적으로 3306번 포트를 사용한다.
    • -p 3306:3306 : 로컬 디바이스의 3306 포트와 도커 컨테이너 안에 3306번 포트와 연결을 시켜준다.
    • 따라서 3306번 포트로 어떤 데이터베이스 명령을 요청하게 되면 그게 도커 안까지 전달이 되어 MySQL에 적용이 되게 된다.
  • -e MYSQL_ROOT_PASSWORD=todos : 환경변수 옵션
    • 실습에 별도의 계정을 생성하지 않고 기본으로 있는 루트 계정을 이용할거라 mysql 루트 계정의 패스워드를 todos라고 지정해달라는 옵션
    • 따라서 루트 계정을 통해 이후에 로그인을 진행할 때 이 때 적용한 todos를 패스워드로 사용
  • -e MYSQL_DATABASE=todos : MySQL 데이터베이스 환경배수를 지정해달라는 옵션
    • 도커 컨테이너가 동작을 할 때 todos라는 이름의 데이터베이스를 하나 기본적으로 생성해달라는 명령어
  • -d : Detach 옵션으로 이 명령어를 수행했을 때 컨테이너가 백그라운드에서 동작하게 하도록 하는 옵션
  • -v todos:/db : 볼륨 옵션
    • 일반적으로 도커 컨테이너는 컨테이너를 종료하게 되면 데이터가 모두 삭제된다.
    • 실습을 진행하는 동안 컨테이너를 내렸다 올렸다 할 수 있기 때문에 todos란 이름의 볼륨을 생성을 해서 로컬 디바이스에 그 데이터를 남겨 실습을 원활히 진행할 수 있도록 할 수 있다.
  • --name 옵션 : 동작시킬 도커 컨테이너의 이름을 지정해주는 옵션
    • todos라고 이름을 지어줬다.
  • mysql:8.0 : 컨테이너를 동작시킬 때 사용할 도커 이미지를 지정
    • MySQL의 8.0 공식 이미지를 이런 식으로 사용한다는 명령

docker가 잘 켜져있는지 확인

docker ps

  • CONTAINER ID : 컴퓨터에서 동작하는 도커 컨테이너의 id
  • IMAGE : mysql 8.0 이미지를 이용

docker 컨테이너 로그 확인

docker logs todos
  • 많은 로그들이 나오는데
  • Ready for start up.
    • 이런 로그가 나오면 MySQL이 동작이 가능한 상태로 컨테이너가 잘 동작할 수 있다는 상태

docker volume 확인

docker volume ls

  • 생성한 도커 volume이 로컬 디바이스에 잘 생성이 됐다는 것을 확인할 수 있다.

'FastAPI > 데이터베이스' 카테고리의 다른 글

ORM 모델링  (1) 2026.06.09
데이터베이스 연결  (0) 2026.06.04
DDL - Create Table  (0) 2026.06.04
sqlalchemy  (0) 2026.05.19
데이터베이스란?  (0) 2026.05.19