안녕하세요!
오늘은 MySQL 설치를 다루는 방법에 대해 Docker를 활용한 포스팅을 준비했습니다. 개발과정에서 MySQL을 직접 서버에 설치하는 것보다 Docker를 이용하여 설치하는 편이 훨씬 편리한 장점이 있습니다. 실제로 저도 MySQL을 두 가지 방식으로 설치해보면서 그 차이를 체감했습니다.
Docker를 사용하면 간단히 MySQL 컨테이너를 생성하고 실행할 수 있습니다. 컨테이너를 생성하면 로컬 머신에서 독립적으로 MySQL 서버가 실행되며, 호스트 머신의 포트와 컨테이너의 포트를 연결하여 외부에서 접근할 수 있습니다. 이렇게 Docker를 활용하면 MySQL을 개발 환경에 빠르게 구축하는 것이 가능하며, 생산성을 크게 향상시킬 수 있습니다.
물론, 직접 서버에 MySQL을 설치하는 것도 어려움이 없습니다! 각각의 방식은 상황에 따라 장단점이 있으며, 다양한 방법을 경험하고 익힘으로써 개발자로서 성장할 수 있습니다.
이제 MySQL 설치를 시작해보도록 하겠습니다.
Docker로 MySQL 운영할 시 장점
MySQL을 Docker로 운영하는 것에는 여러 가지 장점이 있습니다.
1. 편리한 설치와 운영
Docker를 사용하면 MySQL 컨테이너를 간단히 생성하고 실행할 수 있습니다. 복잡한 설치 과정을 줄여주고, 컨테이너를 통해 독립적으로 MySQL 서버를 실행할 수 있습니다.
2. 확장성
Docker를 이용하면 필요에 따라 MySQL 컨테이너를 쉽게 스케일링할 수 있습니다. 컨테이너를 복제하거나 새로운 컨테이너를 추가해 클러스터를 구성하는 것이 용이합니다.
3. 격리와 보안
Docker 컨테이너는 호스트 시스템과 격리되어 있으며, 서로 독립적으로 실행됩니다. 이로 인해 MySQL 컨테이너 간의 충돌이나 영향을 최소화할 수 있으며, 보안 측면에서도 이점을 가져올 수 있습니다.
4. 이식성
Docker를 이용하면 MySQL 환경을 동일하게 유지할 수 있으며, 다른 환경으로 이식하기도 쉽습니다. 개발 환경에서 운영 환경까지 일관성을 유지할 수 있습니다.
5. 버전 관리
Docker 이미지를 사용하면 MySQL 버전 관리가 용이합니다. 필요에 따라 다양한 버전의 MySQL을 사용할 수 있고, 이미지를 통해 버전 관리를 쉽게 할 수 있습니다.
6. 개발 및 테스트 환경 구축
Docker를 이용하면 로컬 환경에 테스트용 MySQL을 빠르게 구축할 수 있습니다. 이를 통해 개발 및 테스트 작업이 효율적으로 이루어질 수 있습니다.
Docker를 이용하여 MySQL을 운영하면 위와 같은 장점들을 누릴 수 있으며, 개발과 운영 과정에서 효율성과 편리성을 높일 수 있습니다.
MySQL 이미지 설치
docker pull mysql
MySQL을 띄우기 위해서 가장 먼저 docker hub에서 mysql 이미지를 pull 받습니다.
설치를 진행하면 위와 같이 명령을 실행하여 MySQL 이미지를 다운로드한 후, 설치 과정이 진행됨을 확인할 수 있습니다.
MySQL 이미지를 통해 컨테이너 생성 및 실행
docker run --name my_mysql -e MYSQL_ROOT_PASSWORD=1234 -p 3306:3306 -d mysql
위의 명령은 설치한 MySQL 이미지를 컨테이너로 생성하고 실행할 수 있도록 해주는 명령입니다. 문법이 복잡해 보이지만 하나씩 정리해 보도록 하겠습니다!
--name my_mysql
생성되는 컨테이너의 이름을 `my_mysql`로 설정합니다. 이 이름은 컨테이너를 관리하거나 참조할 때 사용됩니다. 원하는 다른 이름으로 변경이 가능합니다.
-e MYSQL_ROOT_PASSWORD=1234
MySQL의 루트 사용자 비밀번호를 설정하는 환경 변수를 지정합니다. `1234`부분에는 원하는 비밀번호를 입력하면 됩니다. 이 비밀번호는 설치한 MySQL 컨테이너에 접속할 때 필요합니다.
-p 3306:3306
호스트 머신의 포트와 컨테이너의 포트를 연결하는 설정입니다. 호스트의 3306 포트와 컨테이너의 3306 포트를 연결하여 외부에서 MySQL에 접근할 수 있도록 합니다. 만약 호스트 포트를 다른 포트로 지정하려면 '호스트포트:컨테이너포트' 형식으로 변경하면 됩니다.
-d mysql
컨테이너를 백그라운드로 실행합니다. 해당 옵션을 통해 컨테이너가 독립적으로 실행되고 백그라운드에서 계속 실행되도록 설정합니다.
위의 설정을 통해서 명령을 실행하게 되면 Docker는 MySQL 이미지를 사용하여 새로운 컨테이너를 생성하고 실행하게 됩니다. 생성된 컨테이너는 MySQL 서버를 호스트 머신에서 독립적으로 실행하며, 설정한 포트를 통해 외부에서 접근할 수 있게 됩니다.
MySQL 컨테이너 확인
docker ps
위에서 실행한 mysql 컨테이너가 실제로 생성이 되고 확인을 하기 위해 확인하는 명령어입니다. mysql 외에도 다른 이미지를 컨테이너로 띄우게 되면 실행된 컨테이너의 목록이 나오게 됩니다.
MySQL 컨테이너 접속 확인
docker exec -it my_mysql mysql -u root -p
위의 명령어는 Docker 컨테이너 내에서 MySQL 서버에 접속하기 위한 명령입니다.
exec
해당 옵션은 실행중인 Docker 컨테이너 내에서 특정 명령을 실행하는 명령입니다.
ex) docker exec [옵션] 컨테이너명 명령
-it
해당 옵션은 대화형 상호 작용 모드로 실행한다는 의미입니다. 컨테이너와 터미널 간에 상호 작용할 수 있도록 터미널 세션을 할당합니다.
my_mysql
접속하고자 하는 MySQL 컨테이너의 이름입니다. 위에서 설치한 컨테이너 이름을 'my_mysql'로 했기 때문에 해당 컨테이너 이름으로 설정하였습니다. 해당 부분은 설정한 이름으로 변경이 가능합니다.
mysql -u root -p
MySQL 클라이언트를 실행하고, 루트 사용자로 접속하기 위한 명령입니다. '-u root'는 루트 사용자로 접속하겠다는 의미이고, '-p'는 password를 의미하는 것으로 비밀번호를 입력받을 것임을 나타냅니다.
실행 결과
최종 정리
오늘은 이렇게 Docker에서 MySQL 이미지를 설치하고 컨테이너를 실행 및 접속하는 과정을 정리해 봤습니다.
이렇게 정리를 하고나서 보면 과정은 정말 간단하지만 이러한 과정도 한 번을 경험해 보고 안 해보고는 엄청난 차이가 발생합니다.
로컬 환경에서 간단하게 개발을 할 때에 DB가 필요한 경우가 종종 있습니다. 그럴 땐 Docker를 이용해서 간단하게 MySQL을 설치하고 사용 후 컨테이너와 이미지만 삭제하면 관리도 편하고 생산성에 정말 좋을 거예요!
그럼 다음에도 계속해서 Docker를 활용한 간단한 방법들을 정리해서 포스팅하도록 하겠습니다.
감사합니다!
'Docker' 카테고리의 다른 글
Docker로 간편하게 MongoDB 구축하기 (0) | 2023.09.10 |
---|---|
Docker 환경의 Nginx 웹 서버 구축하기 (0) | 2023.09.03 |
Docker Compose로 PostgreSQL 환경 구축하기 (0) | 2023.08.27 |
Docker 환경에서 PostgreSQL 설치하고 구성하기 (0) | 2023.08.20 |
도커 볼륨으로 안정성을 높이는 데이터 관리 (0) | 2023.08.13 |