오라클 클라우드 인스턴스 내에 설치한 도커를 통해 MySQL 이미지를 설치하고, 로컬 환경에서 접속하는 방법을 정리한다.
컴퓨트 > 인스턴스로 이동한 후 인스턴스 페이지로 접속한다.
인스턴스 내용 중 오른쪽 부분의 서브넷 부분을 클릭한다.
서브넷 세부정보 페이지에서 하단의 보안목록의 리스트에서 Default Security List를 선택한 후 수신 규칙 추가를 클릭한다.
위와 같이 정보를 입력해준 후 수신 규칙 추가를 클릭한다.
수신 규칙 추가를 클릭하면 위와 같이 수신 규칙이 추가된 것을 확인할 수 있다.
오라클 클라우드 인스턴스는 기본 이미지가 오라클 리눅스 8버전이다.
하지만, 이미지를 Ubuntu로 변경해서 인스턴스를 생성했다면, Ubuntu의 방화벽을 따로 설정을 해줘야 외부에서 접속이 가능해진다.
따라서, iptables Configuration을 업데이트 해줘야 오라클 클라우드 수신규칙에서 편집한 내용들을 반영할 수 있다 .
$ sudo iptables -I INPUT 6 -m state --state NEW -p tcp --dport 3306 -j ACCEPT
$ sudo netfilter-persistent save
# netfilter-persistent save 안되는 경우
$ sudo apt install -y netfilter-persistent
도커를 이용해 MySQL 이미지를 가져온다.
다른 버전을 가져오고 싶다면 버전을 명시해준다.
$ sudo docker pull mysql # mysql 최신 버전의 이미지를 가져오기 = mysql:latest
$ sudo docker pull mysql:버전 # ex) mysql:5.6.23
docker-compose 파일을 통해 도커 컨테이너를 관리해주면 편리하기 때문에 docker-compose를 설치한 후 docker-compose 파일을 작성한 후 compose파일을 관리할 디렉토리에 넣어준다.
$ sudo apt install -y docker-compose # docker compose 설치
docker-compose 파일은 기본적을 yaml 형식의 파일로 저장된다.
MySQL 컨테이너 관련 정보들을 docker-compose 파일에 yaml 형태로 작성해준다. 인스턴스에 접속한 후 nano 편집기나 vi에디터를 이용해 파일을 생성한다.
version : "3.1" #파일 버전
services :
mysql :
image : mysql:latest # MySQL 이미지 버저너
container_name : mysql # 컨테이너 이름 지정
ports :
- "3306:3306" # 포트 마운트
restart : always
environment :
MYSQL_ROOT_PASSWORD : # root 로 접속할 때 사용할 비밀번호
TZ : "Asia/Seoul" # TimeZone 세팅
command :
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
volumes :
- /home/ubuntu/docker/data/mysql:/var/lib/mysql
docker-compose 파일을 생성한 후 docker-compose 파일을 실행해준 뒤 컨테이너가 잘 실행되었는지 확인한다.
$ sudo docker-compose up -d # docker-compose 파일 실행
$ sudo docker ps # 실행중인 도커 컨테이너 확인
MySQL을 실행하는 도커 컨테이너가 잘 실행되고 있으면, 도커 컨테이너에 접속한 후 root 권한으로 MySQL 서버에 접속한다.
$ sudo docker exec -it mysql bash # mysql -> 컨테이너 이름
$ sudo mysql -u root -p
여기까지 완료되었다면, 도커와 docker-compose 파일을 이용해 도커 설치 및 인스턴스 내에서 접속까지 완료했다.
이제 내 로컬 환경에서 MySQL Workbench로 접속이 되는지 확인해본다.
외부에서 접근이 잘되는 것을 확인할 수 있다.
오라클 클라우드에 도커 MYSQL 설치해보기 : https://velog.io/@dldhk97/오라클-클라우드에-도커-MYSQL-설치해보기#docker에-mysql-설치
[Database] docker-compose로 MySQL 설치하기 : https://wecandev.tistory.com/107
오라클 클라우드로 인스턴스 만들고, mysql 환경 구성하는데 아주 큰 도움이 되었습니다! 좋은글 감사합니다!