docker
2025. 7. 29. 23:01ㆍ일기
mysql의 데이터베이스에 연결해야 하는데 안된다.
docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=todos -e MYSQL_DATABASE=todos -d -v todos:/db --name todos mysql:8.0
docker run | 도커 컨테이너를 실행하고, 없으면 이미지를 자동으로 다운로드 |
-p 3306:3306 | 호스트의 3306포트 → 컨테이너의 3306포트로 연결 → FastAPI나 다른 앱이 localhost:3306으로 접속하면 도커 MySQL에 닿도록 |
-e MYSQL_ROOT_PASSWORD | 루트 계정 비밀번호가 설정됨 |
-e MYSQL_DATABASE=todos | 컨테이너 시작 시 todos라는 이름의 DB를 자동 생성 |
-d | 백그라운드(detached) 모드로 실행 |
-v todos:/db | 호스트의 todos라는 이름의 Docker volume을 /db 경로에 마운트 → ❗근데 MySQL의 실제 데이터 경로는 /var/lib/mysql이기 때문에 효과가 없음 ( Docker 컨테이너의 데이터를 호스트 시스템에 안전하게 저장하는 공간) |
--name todos | 이 컨테이너의 이름을 todos로 지정 |
mysql:8.0 | mysql:8.0 설치 |
도커를 잘 몰라서 이렇게 만들고 다시
docker start todos
를 해야 하는걸 몰랐고
이렇게 todos를 시작한 다음에
docker exec -it todos bash
mysql -u root -p
해야 하는걸 몰랐다....
후기
docs로 볼려다가 어떻게 docs를 봐야하는지 롤라서 헤매다 gpt 보다가 다시 인강 재수강해서 알아냈다
자꾸 gpt에 의존하게 되는데 docs보면서 공부하는건 어찌하는건지....
반응형
'일기' 카테고리의 다른 글
fastAPI 세션3(ORM) (2) | 2025.07.26 |
---|---|
인프런 강의 fastAPI 섹션 2 정리 (1) | 2025.07.26 |