Docker 환경 구축이 완료되었으니 이제 슬슬 컨테이너를 생성해보자. 첫번째 컨테이너는 DB 컨테이너이다.
MySQL 컨테이너는 다음에 해당하는 환경 변수 설정과 함께 컨테이너를 생성해주어야 한다.
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 컨테이너를 -d로 생성했기 때문에, 컨테이너로 바로 들어가는 것이 안된다.
그래서 약간의 편법으로 mysql 컨테이너의 /bin/bash를 실행하여 terminal을 사용해 접속하도록 한다.
sudo docker exec -it mysqldb /bin/bash
bash-5.1# 과 같이 뜨면 성공이다.
MySQL에 접속하기 위해 다음 명령어를 실행하고 비밀번호를 입력한다.
mysql -u username -p
MySQL을 사용할 사용자들의 계정을 만들고, 사용할 database의 모든 권한을 부여하도록 한다.
create user 'username'@'접속 주소, @는 모든 주소' identified by 'password';
grant all on database.* to 'username'@'접속 주소';
생각보다 금방 끝났다. 접속도 잘 되는 것을 확인했다.
끝!