
부모님이 쓰시는 간단한 관리 프로그램을 iwinv라는 클라우드 업체에서 서버를 대여해서 사용하고 있다가 개인용 Nas 서버가 생겨서 이전을 해보려고 한다. 그 이유는 매월 돈이 나가기 때문이다....
iwinv 에서 클라우드 DBMS를 제공해 주는데 MySQL을 클라우드에서 사용하고 있었다. 일단 Nas 서버에 Docker로 MySql서버를 올린후에 기존 MySQL서버에서 데이터를 dump떠서 옮겨볼 예정이다.

Synology NAS의 Container Manager 패키지는 Docker와 같은 컨테이너화 기술을 관리하고 실행하기 위한 도구이다. 이 패키지를 사용하면 사용자는 NAS 시스템에서 가상화된 환경인 컨테이너를 손쉽게 만들고 관리할 수 있다.

레지스트리(Registry)는 Docker 및 기타 컨테이너화 기술에서 사용되는 중앙 저장소이다. 이 저장소에는 컨테이너 이미지가 저장되어 있으며, 필요할 때 해당 이미지를 다운로드하여 컨테이너를 생성하고 실행할 수 있다.
일반적으로 레지스트리는 온라인에서 호스팅되어 있으며, 개발자 및 조직은 자체 또는 공개적으로 이용 가능한 레지스트리를 설정하여 컨테이너 이미지를 저장할 수 있다.

mysql을 선택하면 버전을 선택해야한다. 5.7.8 버전을 선택해 주었다.

이미지 설치가 완료되면, 컨테이너 실행을 위한 이미지가 준비가 되었다고 볼수 있다.

그전에 실제 데이터가 저장되고, mysql 서버의 설정파일을 저장하는 폴더를 생성 해준다.


볼륨 설정란에서 아까 생성한 폴더를 매핑해준다.

/etc/mysql/conf.d 폴더는 mysql 서버의 구성 파일을 저장하는 곳이다.
/var/lib/mysql 폴더는 mysql 서버가 데이터베이스 파일을 저장하는 곳이다.

환경에서
TZ: 타임존을 한국으로 맞춰준다.
MYSQL_ROOT_PASSWORD: 초기 비밀번호를 설정해준다.

이렇게 하면 정상적으로 mysql 컨테이너가 동작하는것을 볼수 있다.

실제 ssh에서 sudo docker ps를 사용했을때 컨테이너가 정상 작동하고 있는것을 확인할수 있다.
외부에서 접속을 하게 해주기 위해서는 서버에 포트를 라우팅 해주어야 한다.

현재 Docker에 MySQL이 5050 -> 3306으로 접속이 가능하다.
라우터 포트 : 외부에서 접속하는 포트
로컬 포트 : 내부로 연결되는 포트
외부에서 host:5050으로 접속하면 내부에 5050번으로 매핑이 되고 그 5050이 다시 docker 3306으로 매핑이 되기 때문에 SQL접속이 가능 해진다.
하지만 여기서 끝이 아니라 공유기에 서버를 연결 해 두었다면 공유기에 포트 포워딩도 해주어야 한다.

내부 IP : 서버가 할당 받고 있는 IP
이렇게 설정을 해주어야 서버에 라우터 연결 테스트 할시 OK 사인이 떨어질 것이다.