[Docker] Docker MySQL 컨테이너 생성

Bulgogi-Pizza·2025년 1월 5일

웹 서버 구축

목록 보기
10/16

Docker 환경 구축이 완료되었으니 이제 슬슬 컨테이너를 생성해보자. 첫번째 컨테이너는 DB 컨테이너이다.

MySQL 컨테이너 생성

MySQL 컨테이너는 다음에 해당하는 환경 변수 설정과 함께 컨테이너를 생성해주어야 한다.

  • MYSQL_ROOT_PASSWORD
  • MYSQL_DATABASE
  • MYSQL_USER
  • MYSQL_PASSWORD

MySQL DB는 포그라운드에서 실행할 이유가 딱히 없기 때문에 백그라운드에서 실행하도록 -d 옵션을 함께 사용해준다.
-p 옵션은 호스트 포트:컨테이너 포트로 호스트의 3306 포트를 컨테이너의 3306 포트에 연결하겠다는 뜻이다.
mysql:8.0 mysql 이미지 중 8.0 버전의 이미지를 사용해 컨테이너를 구성한다.

sudo docker run --name mysqldb \
	-d \
	-p 3306:3306 \
    -e MYSQL_ROOT_PASSWORD=<root PW> \
    -e MYSQL_DATABASE=<db name> \
    -e MYSQL_USER=<user name> \
    -e MYSQL_PASSWORD=<user pw> \
    mysql:8.0

MySQL 컨테이너 접속

MySQL 컨테이너를 -d로 생성했기 때문에, 컨테이너로 바로 들어가는 것이 안된다.
그래서 약간의 편법으로 mysql 컨테이너의 /bin/bash를 실행하여 terminal을 사용해 접속하도록 한다.

sudo docker exec -it mysqldb /bin/bash

bash-5.1# 과 같이 뜨면 성공이다.

MySQL 접속

MySQL에 접속하기 위해 다음 명령어를 실행하고 비밀번호를 입력한다.

mysql -u username -p

MySQL 사용자 설정

MySQL을 사용할 사용자들의 계정을 만들고, 사용할 database의 모든 권한을 부여하도록 한다.

create user 'username'@'접속 주소, @는 모든 주소' identified by 'password';

grant all on database.* to 'username'@'접속 주소';

생각보다 금방 끝났다. 접속도 잘 되는 것을 확인했다.

끝!

profile
궁금증은 못참는 편, 궁금한 개발자

0개의 댓글