본문 바로가기

윈도우 개발환경

시놀로지 Docker로 만드는 edge server; 1. 우분투 서버 설치하기

시놀로지 Docker로 만드는 edge server

1. 우분투 서버 설치하기

2. node.js 서비스 올리기

node.js로 만든 센서정보 수집용 서비스를 설치할 컴퓨터를 찾다가 시놀로지에 돌고 있는 docker가 생각이 났다. 강력한 성능을 필요로 하는 서버가 아니라서 4 core Atom CPU에 메모리를 8G로 업그레이드한 오래된 시놀로지에 돌고 있는 docker로도 충분히 내가 원하는 mongodb와 node.js정도는 수용할 수 있을 것 같아 시도해 보기로 했다.

 

1. 우분투 컨테이너 만들기

시놀로지에서 docker를 만드는 작업은 모두 docker앱을 실행하면 보이는 화면에서 진행진행한다.

 

  • Docker hub에서 우분투 이미지를 가져온다.

왼쪽의 이미지를 선택하면 나타나는 화면에서 추가 / URL에서 추가를 선택하면 나타나는 화면의 허브 페이지 또는 리포지토리 주소에 docker hub의 ubuntu official image주소를 복사해 넣은 다음 추가를 눌러 이미지를 다운로드한다.

 

https://hub.docker.com/_/ubuntu

 

다음 화면에 나온 태그 선택에는 현재 LTS (Long Term Support) 버전인 22.04를 넣었다.

 

  • 우분투 컨테이너를 생성한다.

다운로드된 우분투 이미지를 선택하고 실행을 눌러 다음화면이 나오면 고급 설정을 선택한다.

 

볼륨에는 내가 프로그램을 저장할 시놀로지의 위치를 선택해 넣고 docker에서는 /works 폴더로 연결했다.

 

포트 설정에는 ssh (내부 port 22)를 10022로 node.js (내부 port 3000)를 13000으로 외부에 열기로 했다.

 

링크에는 이미 만들어 놓은 mongodb를 연결하기 위해 mongodb 컨테이너를 지정했다.

 

이제 고급 설정 화면에서 적용을 누르고 다시 컨테이너 생성 화면이 나오면 다음을 누르고 내용을 확인하고 적용을 눌러 우분투 컨테이너를 만든다.

2. 우분투에 패키지 설치하기

  • openssh-server 설치하기

보안을 생각하면 설치하면 안 되겠지만, 폐쇄망 내에서 센서 정보를 수집하는 서버를 개발하기 위해서는 ssh서버를 사용하면 여러모로 편리하다. 하지만, 우분투 이미지에는 openssh-server가 설치되어 있지 않으므로 설치해 보기로 했다.

 

아직 시놀로지의 docker 컨테이너를 외부에서 접속할 수 없기 때문에 컨테이너 화면에서 터미널을 연다.

 

패키지 목록을 update 하고 openssh-server를 설치한다. 윈도우에 우분투를 설치할 때 설명한 것처럼 repository위치를 mirror.kakao.com 같은 한국서버로 바꾸면 설치가 좀 더 빨라진다.

 

sed -i 's/archive.ubuntu.com/mirror.kakao.com/g' /etc/apt/sources.list
apt update
apt install openssh-server

 

  • openssh-server 시작하기

우분투 컨테이너는 systemd가 설정되어 있지 않기 때문에 systemctl, service 명령으로 자동으로 시작할 수 없다. 대신 /etc/init.d/ssh 명령을 사용해서 시작할 수 있다.

 

/etc/init.d/ssh start

 

만일 systemctl이나 service명령을 이용해서 openssh-server를 시작하고 싶다면 먼저 systemd를 설치하고 시작한다.

 

apt install systemd
service ssh start

 

  • 사용자 추가하기

이제 \adduser 명령으로 사용자를 추가하면 외부에서 ssh로 컨테이너에 접근할 수 있게 된다.

 

adduser [username]