Docker에서 MySQL 컨테이너 설정 및 실행하기

KUKJIN LEE • 1개월 전 작성
MySQL 이미지 다운로드
MySQL 이미지를 Docker Hub에서 다운로드합니다. 최신 버전 또는 원하는 버전을 지정할 수 있습니다.
docker pull mysql:latest
-
mysql:latest
: MySQL의 최신 버전을 다운로드합니다. -
특정 버전을 원하면
mysql:<버전>
형식으로 지정하세요 (예:mysql:8.0
).
이미지 다운로드 후 로컬 이미지 목록에서 확인할 수 있습니다.
docker images
MySQL 컨테이너 실행
기본 실행 명령어
MySQL 컨테이너를 생성하고 실행합니다.
docker run -d --name my-mysql \
-e MYSQL_ROOT_PASSWORD=root_password \
-p 3306:3306 \
mysql:latest
옵션 설명
-
-d
: 컨테이너를 백그라운드에서 실행합니다. -
--name my-mysql
: 컨테이너 이름을my-mysql
로 지정합니다. -
-e MYSQL_ROOT_PASSWORD=root_password
: MySQL 루트 사용자 비밀번호를 설정합니다. -
-p 3306:3306
: 로컬 호스트의 3306 포트를 컨테이너의 3306 포트와 연결합니다. -
mysql:latest
: 사용할 MySQL 이미지 이름과 태그를 지정합니다.
추가 설정 옵션
필요에 따라 데이터베이스 이름, 사용자 계정 등을 설정할 수 있습니다.
docker run -d --name my-mysql \
-e MYSQL_ROOT_PASSWORD=root_password \
-e MYSQL_DATABASE=my_database \
-e MYSQL_USER=my_user \
-e MYSQL_PASSWORD=my_password \
-p 3306:3306 \
mysql:latest
-
MYSQL_DATABASE
: 생성할 기본 데이터베이스 이름. -
MYSQL_USER
: 새 사용자 이름. -
MYSQL_PASSWORD
: 새 사용자의 비밀번호.
실행 상태 확인
실행 중인 컨테이너를 확인하려면 다음 명령어를 사용합니다.
docker ps
컨테이너가 정상적으로 실행 중이면 STATUS
가 Up
상태로 표시됩니다.
MySQL 접속
컨테이너 내부 MySQL CLI 접속
MySQL 클라이언트로 컨테이너 내부에 접속하려면 다음 명령어를 사용합니다.
-
root_password
를 입력하면 MySQL 쉘에 접속할 수 있습니다.
외부 MySQL 클라이언트로 접속
-
호스트:
localhost
-
포트:
3306
-
사용자 이름: 설정된 MySQL 사용자 이름 (기본값은
root
) -
비밀번호: 설정된 비밀번호
예: MySQL Workbench, DBeaver와 같은 GUI 클라이언트를 사용하여 접속.
데이터 볼륨 설정 (선택 사항)
말이 선택 사항이지 필수입니다. 이유는 아래와 같습니다.
컨테이너가 중지되거나 삭제되더라도 데이터를 유지하려면 데이터 볼륨을 설정해야 합니다.
옵션 설명
-
-v mysql_data:/var/lib/mysql
: 호스트의mysql_data
디렉터리를 컨테이너 내부의/var/lib/mysql
에 마운트합니다. -
볼륨을 설정하면 데이터는 컨테이너 삭제 후에도 유지됩니다.
컨테이너 중지 및 삭제
컨테이너 중지
docker stop my-mysql
컨테이너 삭제
docker rm my-mysql
중지된 컨테이너를 포함한 모든 컨테이너 목록 확인
docker ps -a
기본적인 내용이기 때문에 간단하게 실행만 해봤습니다.
서버부터 compose, volume까지 천천히 업로드해보겠습니다.