728x90
Docker을 이용해 MYSQL 설치
@2024.04.30
기존에는 이미 여러 프로그램이 설치되어 있어 새로운 프로그램을 추가할 때 충돌이 발생할 수 있다.
특히 DB와 같이 시스템에 영향을 미치는 프로그램은 기존 소프트웨어와 충돌 가능성이 높다.
직접 데이터베이스를 설치할 경우 설정 변경 과정에서 오류가 발생할 수 있고, 심각한 경우 운영체제를 다시 설치해야 할 수 있다.
하지만 Docker와 같은 컨테이너 기술을 사용하면 각 프로그램이 독립적인 환경에서 실행되므로
기존 시스템과의 충돌 문제를 피할 수 있다.
Docker-Desktop환경 구성하기
- 용량이 큰 거 다운로드하기
- window 기능 → 윈도우 11은 가상 머신 플랫폼 체크
- 윈도우는 다른 운영체제와 다르게 Hyper-V 위에서 도커가 동작한다.
Docker 설치하기 전 윈도우에서 해야 할 설정
💡
윈도우에서 Docker 컨테이너를 실행하기 위해 반드시 Hyper-V를 활성화해야 한다.
- Hyper-V
- Microsoft 사에서 개발한 가상화 기술
- Windows 운영체제 위에 설치되어 가상 머신을 실행하고 관리
- Linux는 이미 Linux 커널에 가상화 지원이 내장되어 있기 때문에 이런 기능이 필요 없다.
- Hyper-V 활성화 방법
- 검색 창에 “Windows 기능 켜기/끄기”를 검색
- “가상 머신 플랫폼”을 켠다.
- 윈도우 재시작
- Hyper-V가 실행되려면 BIOS에서 가상화 관련 옵션을 사용함으로 설정해야 한다.
- F2, DEL 키를 빠르게 입력하면 BIOS에 진입 가능하다.
WSL2(Windows Subsystem for Linux 2) 설치하기
💡
WSL의 업그레이드 버전으로, Hyper-V에서 동작하며,
Hyper-V 가상화 기술을 사용하여 리눅스 커널을 호스트 시스템 위에서 실행한다.
Hyper-V 가상화 기술을 사용하여 리눅스 커널을 호스트 시스템 위에서 실행한다.
- WLS2는 리눅스 커널을 Hyper-V 가상 머신 안에서 실행한다.
- WSL(Windows Subsystem for Linux)
- Microsoft 사에서 개발한 Linux 용 Windosw 하위 시스템으로, 윈도우 운영체제 위에서 리눅스 실행 환경을 제공
- Windsows 커널 위에서 리눅스 커널을 직접 실행
- WSL 사용 시 윈도우 사용자는 유닉스 기반의 리눅스 명령 줄 도구와 유틸리티를 사용 가능
- 설치 방법
- Windos의 PowerShell을 관리자 권한으로 실행
- dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart 입력
- 윈도우에서 Windows Subsystem for Linux (WSL)을 활성화하기 위한
DISM (Deployment Image Servicing and Management) 명령어
- 윈도우에서 Windows Subsystem for Linux (WSL)을 활성화하기 위한
- dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart 입력
- 윈도우에서 가상 머신 플랫폼을 활성화하는 DISM 명령어
- 윈도우 재시작
- WSL2 Linux 커널 업데이트(x64 용 링크)
- Windos의 PowerShell을 관리자 권한으로 실행
- wsl --set-default-version 2 입력
Docker-Desktop 설치
💡
- Docker Desktop Installer.exe 파일을 실행Configuration에 나오는 항목은 모두 체크
- 설치 완료 시 PC 재 시작
- Docker-Desktop 실행 후 동의 클릭
- 첫 번째 항목 선택하고 Finish 버튼 클릭
- 이후 특정한 에러가 안 뜨면, WSL2에 Docker-Desktop이 정상 설치된 것
- Docker-Desktop을 설치하고 실행하면 WLS2에 Docker가 제공하는 리눅스가 설치된다.
- 이 리눅스가 바로 docker-desktop
- docker로 실행되는 이미지들은 해당 리눅스 커널 위에서 동작한다고 생각
Docker-Desktop에 MySQL 설치
- 원하는 경로 생성하기
- C:/docker/mysql
- 생성된 경로에 MySQL DBMS를 실행하기 위한 docker-compose.yml 파일 생성하기
- docker-compose는 여러 개의 도커 컨테이너를 정의하고 실행하기 위한 도구
- 주로 멀티 컨테이너 애플리케이션을 관리하고 배포하는 데 사용
version: "2" services: vacation-db: image: mysql restart: always environment: MYSQL_ROOT_PASSWORD: "루트계정암호" MYSQL_DATABASE: "database이름" MYSQL_USER: "아이디" MYSQL_PASSWORD: "암호" command: - --character-set-server=utf8mb4 - --collation-server=utf8mb4_unicode_ci volumes: - ./database/init/:/docker-entrypoint-initdb.d/ - ./database/datadir/:/var/lib/mysql platform: linux/x86_64 ports: - 3306:3306
- services
- 각 컨테이너 서비스를 정의
- 각 서비스는 도커 이미지를 기반으로 하며, 컨테이너를 실행하는데 필요한 구성 지정
- ex) 웹 서버, 데이터베이스, 백엔드 애플리케이션 등이 서비스로 정의
- image
- 각 서비스의 도커 이미지를 지정
- 이 이미지는 도커 허브에서 가져오거나, 로컬에 빌드 된 것을 사용
- ports
- 컨테이너가 노출될 포트를 지정하며, 이를 통해 외부에서 애플리케이션에 액세스 가능
- 3306:3306는 호스트의 3306포트와 컨테이너의 3306 포트를 매핑한다는 뜻
- 만약 포트 충돌 시 앞에 호스트 포트인 3306을 변경해 준다.
- volumes
- 호스트 및 컨테이너 간 파일 시스템의 공유된 볼륨 정의
- enviroment
- 컨테이너에 전달할 환경 변수 설정
- 컨테이너 동작을 구성할 수 있다.
- services
- 생성된 경로에서 콘솔 창에 docker-compose up -d 명령어 입력하기
- 현재 폴더의 docker-compose.yml 파일을 읽어서 MySQL 서버를 실행하는 명령어
- -d 옵션은 백그라운드로 실행하는 옵션
- 실행이 완료되면 docker-compose.yml이 있는 경로에 database 폴더가 생성되며, 그 아래 init, datadir이 실행된다.
- 원래 docker는 종료되면 docker에서 실행된 내용들은 모두 사라지지만, dockekr를 실행하는 컴퓨터 쪽의 디스크와 마운트함으로써 사라지지 않고 계속 사용할 수 있게 된다.
- docker-compose down 명령어 실행 시 mysql 서버가 종료
- database 폴더를 삭제하고 다시 실행하면, 모든 데이터가 삭제되게 된다.
- 실행 중인 도커 이미지 접속하기
- docker ps 명령어
- 실행되는 이미지 조회 - 컨테이너 ID 확인
- 실행되는 이미지 조회 - 컨테이너 ID 확인
- docker exec -it [컨테이너 ID] 실행할 프로그램 명령어
- docker exec -it c2e50342105a /bin/bash 입력
- docker ps 명령어
IntelliJ에서 Database 이용하기
- 데이터베이스 아이콘 클릭 → + 버튼 클릭 → Data Source 클릭 → MySQL 클릭
- 빨간 박스 안에 내용 채우기 → Test Connection을 눌러 정상 연결로 나오면 성공 → OK 클릭
- DB를 연결을 완료하면, 기존에 준비한 스키마가 있다면 스키마를 추가해서 사용하면 된다.
728x90
'MYSQL' 카테고리의 다른 글
[내장 함수] 숫자형 함수 (0) | 2024.05.05 |
---|---|
[내장 함수] 문자형 함수 (0) | 2024.05.05 |
SELECT절 (0) | 2024.05.05 |
MySQL DB/사용자 생성 및 사용자 권한 설정 (0) | 2024.05.04 |
데이터베이스 (0) | 2024.05.03 |