
Docker로 MySQL을 손쉽게 설치하고 실행하는 방법을 알아보세요. Docker와 MySQL 이미지 준비부터 컨테이너 실행, 데이터 저장 설정, MySQL 접속 및 기본 설정까지 단계별 가이드로 제공합니다.
1. Docker와 MySQL 이미지 준비하기
먼저 Docker가 설치되어 있어야 MySQL을 사용할 수 있습니다. Docker가 설치되어 있지 않다면, Docker 공식 사이트에서 OS에 맞는 설치 파일을 다운로드하고 설치하세요. 설치가 완료되면 터미널에서 docker --version을 입력하여 설치가 제대로 되었는지 확인할 수 있습니다.
Docker가 준비되었다면, 다음으로 MySQL 이미지를 가져와야 합니다. Docker Hub에서 MySQL 이미지를 다운로드하려면 터미널에 다음 명령어를 입력하세요:
docker pull mysql:latest
이 명령어는 MySQL 최신 버전의 이미지를 다운로드합니다. 특정 버전이 필요하다면, latest 대신 원하는 버전을 입력하세요. 예를 들어, mysql:8.0과 같은 형식으로 사용 가능합니다.
2. Docker로 MySQL 컨테이너 실행하기
이미지를 준비했다면 이제 컨테이너를 실행하여 MySQL 서버를 구동할 차례입니다. 다음 명령어를 통해 MySQL 컨테이너를 실행할 수 있습니다:
docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=yourpassword -d -p 3306:3306 mysql:latest
각 옵션의 의미는 다음과 같습니다:
--name: 컨테이너의 이름을 설정합니다. 예시에서는mysql-container로 지정했지만, 원하는 이름으로 변경 가능합니다.-e MYSQL_ROOT_PASSWORD=yourpassword: MySQL의root사용자 비밀번호를 설정합니다. 보안을 위해 강력한 비밀번호를 입력하는 것이 좋습니다.-d: 백그라운드에서 컨테이너를 실행합니다.-p 3306:3306: 호스트와 컨테이너 간의 포트를 매핑합니다. MySQL 기본 포트인3306을 사용하며, 다른 애플리케이션과의 충돌을 피하려면 호스트 포트를 다르게 지정할 수도 있습니다.mysql:latest: 사용할 MySQL 이미지와 버전을 지정합니다.
명령어 실행 후 docker ps를 입력해 MySQL 컨테이너가 실행 중인지 확인할 수 있습니다.
3. MySQL 데이터 저장소 설정하기
MySQL은 데이터베이스 데이터를 저장해야 하므로 데이터를 영구적으로 보관하기 위해 로컬에 볼륨을 마운트하는 방법을 추천합니다. Docker 컨테이너는 기본적으로 임시 환경이기 때문에 컨테이너가 삭제되면 데이터도 사라질 수 있습니다. 이를 방지하기 위해 다음과 같은 명령어로 볼륨을 설정할 수 있습니다:
docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=yourpassword -d -p 3306:3306 -v mysql-data:/var/lib/mysql mysql:latest
여기서 -v mysql-data:/var/lib/mysql 옵션은 호스트의 mysql-data라는 이름의 볼륨을 MySQL의 데이터 디렉토리인 /var/lib/mysql에 연결합니다. 이제 MySQL 컨테이너가 삭제되더라도 데이터는 mysql-data 볼륨에 남아 있어, 언제든지 데이터를 복구할 수 있습니다.
4. MySQL 접속 및 기본 설정하기
MySQL이 정상적으로 실행되었다면, 이제 데이터베이스에 접속하여 필요한 설정을 진행할 수 있습니다. 여러 가지 방법이 있지만, Docker 명령어로 컨테이너 내부에 직접 접속하는 방법을 소개합니다.
다음 명령어로 컨테이너 내부에 접근할 수 있습니다:
docker exec -it mysql-container mysql -u root -p
명령어 실행 후 비밀번호를 입력하면 MySQL 프롬프트에 접속할 수 있습니다. 이제 데이터베이스를 생성하거나 사용자 권한을 설정하는 등의 MySQL 기본 설정을 진행할 수 있습니다.
CREATE DATABASE mydatabase;
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypassword';
GRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'%';
FLUSH PRIVILEGES;
위 예시에서는 mydatabase라는 데이터베이스와 myuser라는 사용자를 생성했습니다. %는 모든 호스트에서 접근을 허용하는 설정이므로, 필요에 따라 보안을 위해 특정 IP로 제한할 수 있습니다.
5. MySQL 컨테이너 관리 및 종료하기
MySQL 컨테이너의 상태를 확인하거나, 재시작 및 종료하는 방법을 알아두면 편리합니다.
컨테이너 상태 확인
docker ps -a
이 명령어를 통해 현재 실행 중이거나 중지된 컨테이너 목록을 확인할 수 있습니다.
컨테이너 일시 중지 및 재시작
- 일시 중지:
docker stop mysql-container - 재시작:
docker start mysql-container
컨테이너 삭제
컨테이너가 더 이상 필요하지 않다면 docker rm 명령어로 삭제할 수 있습니다. 삭제하기 전에 반드시 컨테이너를 중지해야 합니다.
docker stop mysql-container
docker rm mysql-container
결론
이제 Docker를 이용해 MySQL을 설치하고 실행하는 기본 과정을 이해하셨을 겁니다. Docker를 사용하면 개발 환경 설정이 쉽고, 로컬에서 여러 데이터베이스를 테스트하거나 관리하기에도 유리합니다.
혹시 설치 과정 중에 문제가 발생했거나 추가적인 설정이 궁금하시다면, 댓글로 질문해주세요! 😊