사용이유
사이드 프로젝트로 MySQL을 사용하여 간단한 프로젝트를 사용할 때 내 로컬에 있는 DB는 건들지 않고, 다른 DB를 사용하여 프로젝트를 만들고 싶어졌다.
처음에는 기존에 있는 로컬에 다른 사용자를 만들어서 DB를 만들려고 했으나, 이런 경우에 서버를 여러대 두고, DB를 사용해보자는 취지로 Docker Container를 활용한 DB를 구축하게 되었다.
설치 및 연동
아래와 같이 일단 mysql을 설치해준다. 이때 내가 특별히 사용하고 싶은 버전이 있다면, mysql:버전명 이런식으로 태그를 달아서 설치해주면 된다.
* 참고로 도커는 기본적으로 설치되어 있다는 전제로 한다.
$ docker pull mysql
$ docker pull mysql
Using default tag: latest
latest: Pulling from library/mysql
4be315f6562f: Pull complete
96e2eb237a1b: Pull complete
8aa3ac85066b: Pull complete
ac7e524f6c89: Pull complete
f6a88631064f: Pull complete
15bb3ec3ff50: Pull complete
ae65dc337dcb: Pull complete
573c3c7fa18d: Pull complete
9d10771b98b8: Pull complete
3d8ef442614b: Pull complete
7dc17a6cea26: Pull complete
752752efdaea: Pull complete
Digest: sha256:2dafe3f044f140ec6c07716d34f0b317b98f8e251435abd347951699f7aa3904
Status: Downloaded newer image for mysql:latest
다운로드한 도커 이미지를 확인해보자, 내 경우에는 도커 Desktop을 활용해서 설치 유무를 확인했는데, 이 경우가 아니라면 명령어로도 확인할 수 있다.
* 아래는 도커 데스크탑을 활용하여 내가 설치한 Docker image 항목들이다.
* 명령어를 통한 Docker image 확인은 아래와 같다.
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql latest 96d0eae5ed60 9 days ago 524MB
이제 생성한 Mysql 이미지를 Container에 올려보도록하자.
$ docker run -it -e MYSQL_ROOT_PASSWORD=1234 -d -p 3308:3306 -v 내 로컬에 있는 폴더 경로:도커 폴더 경로 mysql
[명령어 설명]
run : 도커 이미지를 컨테이너로 생성하면서 실행을 동시에 해준다.
-i : 컨테이너를 실행할 때 컨테이너 쪽 표준 입력과의 연결을 그대로 유지한다. 그러므로 컨테이너 쪽 셀에 들어가서 명령어를 실행할 수 있다.
-t : 유사터미널 기능을 활성화하는 옵션이다. 여기서 i 옵션을 사용하지 않으면 유사 터미널을 실행해도 입력할 수가 없으므로 통상적으로 -it를 합쳐서 사용한다.
-d : deamon 옵션으로서 도커가 백그라운드에서 계속 실행되게 한다.
-p : 포트 옵션으로서 <로컬에서 접속하는 포트>:<도커쪽에서 열리는 포트> 즉 내쪽에서 3308 포트로 접속하면, 도커쪽에서 3306으로 들어가게 된다. 나는 로컬 DB가 3306포트를 사용중이라서 3308포트를 사용하여 접속했다.
-v : 마운트 옵션으로서 내 로컬에 있는 폴더와 도커에 있는 폴더를 마운트 시켜준다. (마운트 옵션은 도커에 있는 데이터가 삭제되지 않고 꾸준히 관리되기를 원할때 걸어주는 옵션이므로 지속적으로 관리가 필요없는 경우는 없어도 무관하다. )
만약 -v 옵션 즉, 마운트 옵션을 제외하고 만들고 싶다면 아래와 같이 입력하면 된다.
$ docker run -it -e MYSQL_ROOT_PASSWORD=1234 -d -p 3308:3306 mysql
mysql : image명
* 참고로 옵션을 붙이는 순서는 상관 없으나 옵션 뒤에 따라오는 경로 혹은 포트번호 등은 꼭 해당 옵션 뒤에 붙여주어야한다.
결과
이미지상 잘 확인할 수 없는데, Port는 3308로 연결해주었다. 비밀번호는 Docker Mysql container를 실행할 때 만든 비밀번호 1234를 적어주면 위와 같이 Test Connection에서 성공적으로 DB에 접속하는 것을 확인 할 수 있다.
'프로그래밍 > Docker' 카테고리의 다른 글
[Docker] 윈도우에서 django 컨테이너 mysql 컨테이너 연동시키기 (0) | 2022.05.15 |
---|---|
[Docker] Docker GUI 윈도우에서 사용해보기 (0) | 2022.05.14 |