[Java] 11. AWS EC2 docker를 이용한 MySQL 연동

Kyunghwan Ko·2022년 10월 8일
0

Java

목록 보기
12/14

환경소개

  • Ubuntu 22.04 LTS (AWS Linux 아님)
  • t3.small (vcpu 2개, 2GB의 메모리)
  • XShell 7 (다운로드)

위와 같은 상태에서 docker를 통해 mysql을 실행시켜보겠다.

관리자 권한으로 작업하기 위해 root권한으로 변경후
docker의 minikube다운받기 위해 오픈소스를 clone한다.
(shift + insert 로 붙여넣기 가능하다)

ubuntu:~$ sudo su -

root@ip: git clone https://github.com/Kyeongrok/docker_minikube_kubectl_install

root@ip: cd docker_minikube_kubectl_install
root@ip: sh docker_install.sh

이제 docker명령어 사용이 가능해졌으니 docker로 nginx 띄워보겠다.

root@ip: docker run -p 80:80 nginx

위 명령어를 실행한 후 URL입력창에 {ec2의퍼블릭DNS}:80 이렇게 입력하면

위와 같은 창이 뜨면 nginx가 정상적으로 실행중임을 확인할 수 있다.

docker 이미지를 다운받아서 mysql을 실행해보겠습니다.

root@ip: docker exec -it mysql-db bash

mysql이 latest버전으로 잘 설치된것을 확인할 수 있다.

MySQL 실행

mysql docker image를 실행(run)하기 위해서는 몇가지 설정 값들을 인자로 주어야 한다.

--env (-e) : 환경변수 값
아래와 같은 환경 변수를 인자로 받는다.
MYSQL_ROOT_PASSWORD : mysql root 패스워드를 입력하는 환경 변수
MYSQL_USER : mysql user name을 입력하는 환경 변수
MYSQL_PASSWORD : mysql 패스워드를 입력하는 환경 변수
MYSQL_DATABASE : 생성할 데이터베이스 명

--name : docker container 이름

--publish (-p) : 호스트 포트 : 컨테이너 내부 포트

따라서 아래의 명령어를 입력하면된다.

root@ip: docker run --detach --env MYSQL_ROOT_PASSWORD="root" --env MYSQL_USER="likelion" --env MYSQL_PASSWORD="likelion" --name "mysql-db" --publish 3306:3306 mysql;

(※ = 기준 앞뒤로 띄어쓰기가있으면 제대로 인식못하니 띄어쓰기없이 최대한 붙여써주시기 바랍니다)

root@ip: docker exec -it mysql-db bash
bash-4.4: mysql -u root -p
Enter password: root
mysql >


즉, 초록색으로 표시한 부분에 앞서 MYSQL_ROOT_PASSWORD로 설정한 root를 입력해주면된다.
프롬프트가 안 움직이더라도 잘 입력되고 있는 것이니 root입력 후 엔터를 치면된다.

docker exec -it mysql-db bash
명령어를 통해 mysql-db 컨데이너에 bash 쉘로 접속했다.
해당 컨데이터 안에서 mysql -u root -p를 통해 mysql 어플리케이션이 실행된 것을 볼 수 있다.

이로서 mysql docker image 설치부터 실행완료!

이제 MySQL 데이터베이스를 SQL언어로 조작하면 된다~~

MySQL 종료

mysql> exit;
bash4.4: exit;
root@ip:
profile
부족한 부분을 인지하는 것부터가 배움의 시작이다.

0개의 댓글