F-Lab
🚀
상위권 IT회사 합격 이력서 무료로 모아보기

도커 컴포즈를 활용한 MySQL 환경 구축하기

writer_thumbnail

F-Lab : 상위 1% 개발자들의 멘토링

AI가 제공하는 얕고 넓은 지식을 위한 짤막한 글입니다!



도커 컴포즈와 MySQL의 만남

최근 개발 환경을 구축하는 데 있어서 컨테이너 기술의 중요성이 점점 더 커지고 있습니다. 특히, 도커(Docker)는 개발자들 사이에서 널리 사용되는 컨테이너 플랫폼으로 자리 잡았습니다. 도커를 사용하면 어떤 환경에서도 일관된 개발 및 배포가 가능해지며, 이는 개발의 효율성을 크게 향상시킵니다.

도커 컴포즈(Docker Compose)는 여러 컨테이너를 정의하고 실행하기 위한 도구입니다. 이를 통해 개발자는 여러 서비스가 포함된 애플리케이션을 쉽게 관리할 수 있습니다. 본 글에서는 도커 컴포즈를 활용하여 MySQL 데이터베이스 환경을 구축하는 방법에 대해 알아보겠습니다.



도커 컴포즈로 MySQL 컨테이너 구성하기

MySQL은 가장 널리 사용되는 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS) 중 하나입니다. 웹 애플리케이션 개발에 있어서 데이터를 저장하고 관리하는 데 필수적인 요소입니다. 도커 컴포즈를 사용하여 MySQL을 구성하는 것은 매우 간단합니다.

먼저, 'docker-compose.yml' 파일을 생성합니다. 이 파일 안에는 실행하려는 서비스의 구성이 YAML 형식으로 정의됩니다. MySQL 서비스의 경우, 이미지, 환경 변수(예: 데이터베이스 이름, 사용자 이름, 비밀번호 등), 포트, 볼륨 등을 설정할 수 있습니다.

version: '3'
services:
    db:
        image: mysql:latest
        environment:
            MYSQL_DATABASE: 'exampledb'
            MYSQL_USER: 'user'
            MYSQL_PASSWORD: 'password'
            MYSQL_ROOT_PASSWORD: 'rootpassword'
        ports:
            - '3306:3306'
        volumes:
            - 'mysqldata:/var/lib/mysql'
volumes:
    mysqldata:

위의 예시에서는 MySQL의 최신 버전을 사용하며, 'exampledb'라는 데이터베이스와 'user'라는 사용자를 생성합니다. 또한, 3306 포트를 통해 외부에서 접근할 수 있도록 설정하고, 데이터를 영구적으로 저장하기 위해 볼륨을 사용합니다.



MySQL 컨테이너 실행 및 관리

'docker-compose.yml' 파일이 준비되면, 터미널에서 다음 명령어를 실행하여 MySQL 컨테이너를 시작할 수 있습니다.

docker-compose up -d

이 명령어는 'docker-compose.yml' 파일에 정의된 서비스를 백그라운드에서 실행합니다. '-d' 옵션은 'detached mode'를 의미하며, 터미널이 종료되어도 컨테이너가 계속 실행되도록 합니다.

MySQL 컨테이너가 실행되고 나면, 'docker-compose ps' 명령어를 통해 실행 중인 컨테이너의 상태를 확인할 수 있습니다. 데이터베이스에 접근하거나 관리하기 위해서는 'docker-compose exec' 명령어를 사용하여 컨테이너 내부에 접속할 수 있습니다.



도커 컴포즈를 이용한 환경 구축의 장점

도커 컴포즈를 사용하여 MySQL 환경을 구축하는 것은 여러 가지 장점이 있습니다. 첫째, 개발 환경을 코드로 정의하고 관리할 수 있어, 환경 구성의 일관성을 유지할 수 있습니다. 둘째, 여러 서비스를 함께 실행하고 관리하는 것이 용이해져, 복잡한 애플리케이션의 개발 및 테스트가 간편해집니다. 셋째, 컨테이너를 사용함으로써 애플리케이션과 그 환경을 분리할 수 있어, 다른 환경으로의 이전이 용이해집니다.



결론

도커 컴포즈를 활용한 MySQL 환경 구축은 개발자에게 효율적인 개발 환경을 제공합니다. 본 글에서 소개한 방법을 통해 간단하게 MySQL 데이터베이스를 구성하고 관리할 수 있습니다. 이를 통해 개발 과정에서 발생할 수 있는 환경에 따른 문제를 최소화하고, 개발에 더 집중할 수 있게 됩니다.

ⓒ F-Lab & Company

이 컨텐츠는 F-Lab의 고유 자산으로 상업적인 목적의 복사 및 배포를 금합니다.

조회수
logo
copyright © F-Lab & Company 2025