티스토리 뷰
Docker란?
도커는 컨테이너 기반의 가상화 플랫폼입니다.
컨테이너란 컨테이너가 실행되고 있는 호스트 OS의 기능을 그대로 사용하면서 프로세스를 격리하여 독립된 환경을 만드는 기술을 뜻합니다.
OS부터 시작해서 필요한 모든 파일을 독립적으로 생성하고 hypervisor를 거쳐야 하는 가상 머신에 비해
컨테이너는 베이스 환경의 OS를 공유하고 프로세스를 격리하는 방식이기 때문에 실행속도가 훨씬 더 빠릅니다.
즉, 도커란 독립된 환경을 만들어서 하드웨어를 효율적으로 활용하는 기술입니다.
Docker에서 mysql을 사용하는 이유
독립적인 프로세스 운용
로컬환경에 설치된 MySQL과 독립적으로 DB를 운영하고 싶을 때 도커를 이용할 수 있습니다.
새로운 프로젝트를 시작을 하게되면 MySQL설정을 바꿔야 할 상황이 오는데 이때 잘못된 설정을 하면 되돌리지 못하고
SQL프로그램 자체를 지우고 다시 설치했을 경우 기존 자료들도 다 사라지게 됩니다.
이때 Doker를 이용하게 되면 잘못된 설정을 하게 되더라고 MySQL의 컨테이너를 삭제하고 다시 띄우기만 하면 됩니다.
로컬 환경과 독립적으로 실행 되기 때문에 컨테이너를 삭제하고 다시 올려도 로컬 환경에 설치된 MySQL에는 변화가 없습니다.
로컬에 여러 DB가 설치되어있다고 하면 포트번호가 중복될수도 있고 설정이 공유될수도 있습니다.
Doker로 MySQL을 띄우면 외부와 연결되는 포트번호를 지정해 줄 수 있고 독립적인 환경에서 실행되기 때문에 위와 같은 문제를 해결 할 수 있습니다.
도커 설치
Docker 홈페이지
1. 도커 페이지에 들어가 해당 OS에 맞게 다운로드 해줍니다.
2. 파일을 실행시켜줍니다.
3. 여기서 OK버튼을 눌러주면 다운로드가 실행됩니다.
4. 설치가 다 되면 Close and restart버튼이 뜨는데 눌러서 재시작을 해줍니다.
5.Accept를 눌러줍니다.
6.Finish를 눌러주면 Doker Desktop이 뜨면서 로그인 하는 창이 나오는데 로그인을 해줍니다.
7. docker -v
cmd를 사용해 도커가 잘깔렸는지 확인해봅니다.
8. doker pull mysql
도커에 MySQL이미지를 설치합니다.
여기서 이미지란 프로그램 또는 환경을 도커에선 이미지라고 하며
이들이 올라가 실행되는 곳을 컨테이너라고 합니다.
9. docker images
이미지가 잘 받아졌는지 확인하는 명령어 입니다.
해당 이미지가 잘 받아진걸 확인 할 수 있습니다.
또한 Docker의 대시보드에서도 확인 할 수가 있습니다.
10. docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=<password> -d -p 3306:3306 mysql:latest
MySQL의 컨테이너를 생성하고 실행합니다.
명령어 설명
● --name <container_name> : <container_name> 이름의 컨테이너를 실행한다.
● -e : 컨테이너 내에서 사용할 환경변수를 설정
● -e MYSQL_ROOT_PASSWORD=<password> : MySQL의 root 권한의 비밀번호를 <password>로 설정한다.
● -d : detach 모드로 컨테이너가 실행된다. 컨테이너가 백그라운드로 실행된다고 보면 된다.
● -p <호스트 포트> <컨테이너 포트> : 호스트와 컨테이너의 포트를 연결한다
● mysql:latest : 컨테이너에 사용할 이미지
mysql-container라는 이름으로 컨테이너가 생성되며 컨테이너의 루트권한 비밀번호는 1234로 설정됩니다.
또한 호스트의 3305포트가 컨테이너 내의 MySQL의 3306포트로 연결 되었습니다.
호스트에 MySQL이 설치되어 있다면 포트번호가 겹치기 때문에 컨테이너와 연결되는 호스트의 포트번호는
다른 번호로 지정해주는 것이 좋습니다.
11.docker ps -a
컨테이너가 잘 생성된걸 볼수 있습니다.
데스크탑에서도 확인 할 수있습니다.
12.docker exec -it mysql-container bash
컨테이너환경에 bash로 접속하기
비밀번호를 설정하거나, 재설정하거나, 입력할 때는 보이지 않으므로 안보인다고 안적히는게 아닙니다!
위 처럼 데스크탑에서도 바로 접근을 할 수 있습니다.
실행된 MySQL컨테이너를 GUI로 보면서 관리하기(HeidiSQL)
HeidiSQL홈페이지
1. Installer, 32/64 bit combined를 눌러서 설치해줍니다. (Install 시 next누르기)
2. 설치가 완료되면 HeidiSQL 세션관리자가 나오는데 이때 신규 버튼을 눌러줍니다.
네트워크 연결
이더넷 클릭후 자세히 보기 클릭
IPv4 주소 복사
3.내 pc에 설치된 랜카드의 정보를 확인합니다.
4. 호스트명 / IP에는 랜카드의 IP를 입력해주고 사용자는 root,
암호는 Docker에서 만들었던 비밀번호를 넣어줍니다.
포트 번호는 MySQL을 만들때 적어줬던 host 포트번호를 입력하면됩니다.
5. 열기를 누른다면 도커에서 만들었던 mysql이 보이는걸 확인 할 수 있습니다.
6. 데이터 베이스 생성하기를 누른다면 잘 생성되는걸 확인 할 수 있습니다.
7. 터미널에서 확인했을 때에도 잘 연결된 걸 확인 할 수있습니다.
'프로그래밍 기초 > database' 카테고리의 다른 글
node.js 에 mysql 연결하기 (RDS) (1) | 2024.01.25 |
---|---|
RDS로 MySQL 세팅하기 (0) | 2024.01.24 |
MongoDB 사용하기(MongoDB Client : Studio 3T) (0) | 2024.01.18 |
MongoDB 사용하기(가입 및 주소 가져오기) (0) | 2024.01.18 |
Node.js와 MySQL연동해보기(2) (0) | 2023.12.27 |