이번에는 Docker에 MySQL을 설치해 보고 MySQL Workbench와 연결해보겠습니다.
사실 DB는 Docker과 잘 연결하지 않습니다.
그 이유는 컨테이너를 쉽게 삭제하고 이미지를 쉽게 내릴 수 있기 때문에, 실수로 DB가 실행중인 컨테이너를 없애기라도 하면, 기존의 데이터가 전부 없어지기 때문입니다.
Ubuntu 서버에 직업 MYSQL을 설치하고 싶으신분은, 해당 내용을 구굴해보시면 쉽게 찾을 수 있습니다.
저는 이번에 Docker를 이용해서 하는 방법을 실습해보겠습니다.
docker ps -a
// 실행중인 컨테이너 전부 삭제
docker rm -f `docker ps -a -q`
docker images
// 실행중인 이미지 전부 삭제
docker rmi -f `docker images`
저는 실습을 진행하면서 만들어놨던 여러 컨테이너와 이미지를 우선 전부 지우고 시작하겠습니다.
※ 위 코드를 실행하면 기존의 실행중인 컨테이너가 전부 없어집니다. 필요한 사람만 진행해주세요
docker run -d -p [서버 포트]:3306 -e MYSQL_ROOT_PASSWORD=@@@@@@@ mysql 5.6
Docker는 기본적으로 MySQL 이미지가 탑재되어 있습니다.
때문에 따로 설치하거나 RUN 할 필요 없습니다.
위 코드를 실행하고 docker ps -a로 컨테이너를 조회하면 mysql이 생긴걸 확인 할 수 있습니다.
apt install mysql-client-core-5.7
apt install mariadb-client-core-10.1
위 패키지를 설치하여, 외부에서도 SQL에 접근 할 수 있도록 권한 계정을 만들어 주겠습니다.
docker inspect [컨테이너 ID]
...
IPAddress : @@@@@
mysql -u root -p --host [IPAddress] --port 3306
docker inspect를 통해 MYSQL이 도커의 어느 IP에 구동중인지 확인한 후,
mysql 명령어를 통해 DB 터미널에 접속해주세요.
use mysql; // mysql DB 활성화
CREATE USER '[권한 계정 ID]'@'%' IDENTIFIED BY '비밀번호';
GRENT ALL PRIVILEGES ON *.* TO '[권한 계정 ID]'@'%';
FLUSH PRIVILEGES;
exit;
docker restart [컨테이너 ID]
위 코드를 순서대로 진행해 주시면서 권한을 부여받을 계정과 계정의 비밀번호를 만들어 주면 됩니다.
마지막에 docker restart [컨테이너ID]를 꼭 실행 해주세요.
이후 AWS의 인바운드 규칙 편집에 가서 포트 "9876"을 열어 주세요.
저는 MySQL Workbench를 자주 이용하는 편입니다.
AWS에서 제공하는 퍼블릭 IP와 도커가 실행중인 포트 9876을 넣으면 비밀번호를 입력하라고 나옵니다.
아까 설정해둔 비밀번호를 입력하면, 성공적으로 진행이 된걸 확인 할 수 있습니다.
이렇게 Docker에 MySQL 데이터베이스도 만들어 봤습니다.
Reference :
- 동빈나 유튜브 : https://youtu.be/gmE_8oSZ-mo
'DevOps > CI_CD' 카테고리의 다른 글
DevOps) CI/CD 구현하기 AWS RDS MySQL와 Node.js 연동하기 후 도커 이미지 만들기 (9) (0) | 2022.04.15 |
---|---|
DevOps) CI/CD 구현하기 AWS RDS로 MYSQL 구축하기 (8) (0) | 2022.04.14 |
DevOps) CI/CD 구현하기 Docker에 Node 설치 (6) (0) | 2022.04.14 |
DevOps) CI/CD 구현하기 우분투에 Docker(도커) 설치 (5) (0) | 2022.04.14 |
DevOps) CI/CD 구현하기 우분투 서버 HTTPS 설정 (4) (0) | 2022.04.13 |
댓글