▸인프라/Docker

도커를 이용한 MySQL 설치

코데방 2020. 3. 16.
728x90

윈도우에서는 그냥 쉽게 설치할 수 있으나.. 나중에 DB 환경을 실제 운영 서버나 다른 곳으로 이전시킬 수 있기 때문에 도커를 이용해 설치를 해봤습니다. 어차피 실제 운영할 때는 리눅스 서버에서 사용할 가능성이 높기 때문에 미리 익숙해지는게 좋을 듯합니다. 윈도우 서버는 유료이고 비쌉니다..

 


 

 

1. 도커 허브(Docker Hub)에서 이미지 찾기

 

트레이아이콘을 우클릭하면 나오는 탭 중 "Docker Hub"를 클릭하면 접속이 됩니다. 거기서 mysql을 검색합니다. 공식 이미지 파일(OFFICIAL IMAGE)이 있어서 이 이미지를 받기로 합니다.

 

그냥 명령어로 "docker search mysql"을 입력해 검색할 수 있지만 설명을 자세히 보기가 힘든디 그냥 도커 허브를 쓰는게 나은 것 같습니다. 눌러보면 관련된 여러 정보들과 컨테이너를 생성하는 방법 등이 아주 길게 나옵니다. 

 

 

 


 

 

2. mysql 도커 이미지 다운받기

 

이미지 이름을 알아냈으므로 명령 프롬프트에서 이미지를 다운받아줍니다. 저는 git bash를 사용하고 있는데 그냥 cmd에서 해도 됩니다. 태그는 생략해서 디폴트인 ":latest"로 설정합니다. 가장 최신 이미지로 받겠다는 의미입니다. 명령어를 실행하면 금방 다운을 완료합니다.

 

그런데 하다보니 8버전보다 5.7버전이 레퍼런스가 많은 것 같아서 나중에 지우고 다시 깔았습니다. 만약 다른 버전을 받고 싶다면 "pull mysql:5.7"과 같이 사용하면 됩니다. 

 

 

 

로컬 저장소에서 이미지를 확인해보면 정상적으로 저장된 것을 확인할 수 있습니다.

 

 

 

 


 

 

3. 컨테이너 생성하기

 

이제 컨테이너를 생성해줍니다. 컨테이너 생성시에 설정해줘야하는 옵션들이 있습니다. 아까 도커 허브에서 클릭해보면 관련된 설명들이 쭉 나옵니다. 

 

 

 

아래 옵션들을 추가해서 컨테이너를 생성했습니다. 옵션은 입맛대로 조정해주면 됩니다. 테스트로 사용할거라 따로 공유 볼륨을 마운트시키진 않았습니다. 스터디용으로 생성할때는 아래 옵션정도로 생성해도 될 것 같습니다. 로컬 컴퓨터에서 개발한다면 컴퓨터 껐다 킬 때 자동으로 실행되도록 자동 실행 옵션을 주는 것이 좋을 듯합니다.

 

만약 latest 이미지가 아니라 다른 버전을 이미지로 받아뒀다면 마지막에 버전 태그를 꼭 붙여줘야 합니다. 만약 "pull mysql:5.7" 로 이미지를 받았더라도 "run mysql"로 컨테이너를 생성하면 가장 최신 이미지를 다시 받아와서 구동해줍니다. 따라서 "run mysql:5.7"로 정확한 이미지 파일 이름을 명시해줘야 합니다. 

 

  • -d → 백그라운드 데몬 모드로 동작
  • -p 3306:3306 → mysql의 3306 서비스 포트를 OS의 3306 포트와 연동
  • -i -t → 실행중인 컨테이너에 shell 접속을 가능하게 함
  • -e MYSQL_ROOT_PASSWORD='패스워드' → MySQL의 루트 계정 패스워드를 설정
  • --name '컨테이너이름' → 컨테이너 이름을 수동으로 지정 (생략시 도커 엔진이 알아서 설정)
  • --restart always → 수동으로 중지시키는 경우를 제외하고, 서비스가 중지되면 자동 재실행
  • mysql → 컨테이너 구동에 삽입할 이미지 이름
docker run -d -p 3306:3306 -i -t -e MYSQL_ROOT_PASSWORD=root 
--name mysql --restart always mysql:5.7

 

 

 


 

 

4. mysql 컨테이너 접속해보기

 

git bash에서는 에러 메세지가 나면서 접속이 되지 않는데 아직 이유를 잘 모르겠네요. 그냥 cmd에서 아래 명령어로 접속하면 컨테이너에 접속됩니다. 이후부터는 리눅스 명령어를 사용해서 작업하면 됩니다. mysql 구동만을 위한 경량 리눅스라 사용할 수 있는 기능이 많이 없습니다.

 

지금 접속한 것은 DataBase가 아닌 컨테이너에 접속한 것이라는 점에 유의해야 합니다. 그냥 DB서버에 원격 접속한 것과 동일하다고 생각하면 됩니다.

 

- docker exec -i -t mysql bash

 

 

 


 

 

5. 데이터베이스 접속하기

 

먼저 컨테이너에 직접 접속해 커맨드로 접속하는 방법입니다. 위에서 컨테이너 접속까지 잘 됐다면 아래 명령어를 쳐서 mysql에 접속합니다. 

 

- mysql -u root -p

 

root 계정으로 접속하고 비밀번호는 입력하겠다는 뜻입니다. 비밀번호를 입력하고 나면 정상 접속되는 것을 확인할 수 있습니다. 

 

 

 

 

GUI 툴을 받아서 사용할 수도 있습니다. 아래 페이지에 들어가서 "MySQL Workbench"를 다운받아 설치합니다. 우측 하단 Download를 클릭하면 됩니다. 로그인을 해야하는데 오라클 계정으로 로그인해주면 되고 없으면 가입해줍니다.

 

https://dev.mysql.com/downloads/workbench/

 

 

 

 

설치가 다되면 MySQL Connections 옆의 플러스(+) 버튼을 눌러 새로운 DB 커넥션을 생성해줍니다.

 

 

 

 

일단 로컬에 생성했으므로 디폴트 설정 그대로 놔두고 Connection Name만 지정해서 OK 버튼을 누르면 아래쪽에 커넥션이 생성됩니다.

 

 

 

 

 

 

생성한 커넥션을 눌러보면 패스워드를 입력하라고 나오는데, 컨테이너 생성시에 환경변수로 넣어준 패스워드를 입력해주면 됩니다.

 

 

 

 

 

패스워드 입력 후 오류 없이 접속되었다면 이제 DB 생성이 마무리 되었습니다. 

 

728x90

댓글

💲 추천 글