시놀로지 Docker 기본 사용법

시놀로지 DS918+ 로 넘어온 이유 중 하나가 도커를 사용할 수 있다는 것 이였습니다. 기존에 사용하던 것은 Synology DS214+ 였는데 해당 기기에서는 성능 때문이였는지 Docker패키지를 설치할 수 없었습니다.
저도 도커 초보라서 많이 알지는 못하지만 정리차원으로 포스팅을 해 볼까 합니다.

tistory-image

도커란 무엇인가??

도커란 컨테이너 기반의 오픈소스 가상화 플랫폼입니다. 라고 인터넷에 많이 올라와 있으나 초보자들에게는 이게 뭔~ 소린가~ 할 것입니다. 그래서 짧고 간단하게 풀어서 설명을 먼저 해 볼까 합니다.

VirtualBox, VMware 같은 가상머신이라는 것이 있습니다. 가상머신은 컴퓨터 안에 또 다른 가상의 컴퓨터를 띄우는 기술을 말하는데 MAC컴퓨터에 windows를, Windows컴퓨터에서 또 다른 windows나 리눅스를 가상머신으로 띄워서 사용할 수 있습니다.

가상머신의 가장 큰 단점은 자원의 비효율화라고 할 수 있습니다. 예를들어 모체 컴퓨터의 메모리 (RAM)가 16G라고 한다면 가상머신을 하나 띄울 때 마다 16G에서 일부를 가상머신에 고정적으로 할당을 해 줘야 합니다. 만약 Windows를 띄울거라면 최소한 4G이상을 할당해야 하는 것이지요. 그렇게 될 경우 가상머신을 2~3개 띄우면 모체 컴퓨터 뿐만 아니라 가상머신까지도 메모리(RAM)가 부족하여 버벅대기 시작 할 것입니다.

이게 개인컴퓨터인 경우는 크게 문제가 되지 않겠지만 여러 대의 서버를 가상으로 운영하는 곳이라면 굉장히 비 효율적인 시스템이 됩니다. 잘 사용하지도 않는 가상머신이라도 고정된 자원을 미리 할당해 놔야 하는 것이닌까요. 클라우드센터를 운영하게 된다면 효율성 면에서 가상머신으로는 운영 할 수가 없게 됩니다.

Docker가 큰 관심을 받는 것은 이부분을 해결했기 때문이라고 볼 수 있습니다.
제공자는 OS 및 서비스를 이미지화 해서 제공을 하고 사용자는 필요한 이미지를 다운로드 받아 컨테이너로 실행을 하게 됩니다. 이러한 컨테이너는 애플리케이션과 격리된 상태에서 실행하기 때문에 쉽게 설치, 재설치, 삭제가 가능합니다.

단점이라면 리눅스 기반이라는 점 입니다. 모체 컴퓨터는 windows, Mac용으로 설치할 수 있게 제공을 하고 있으나 띄워지는 가상머신은 아직 리눅스만 가능합니다.

시놀로지 도커(Docker) 스테이션의 기본 사용법

시놀로지도 리눅스 기반으로 돌아가는 시스템이라 도커를 활용할 수 있습니다. 그렇다고 모든 시놀로지 NAS에 도커 패키지를 설치할 수 있는건 아니니 자신의 NAS를 확인해 볼 필요는 있습니다.

시놀로지 도커 설치하기

tistory-image
설치는 간단하고 어렵지 않습니다. 다른 패키지를 설치하는 것 처럼 설치를 하면 됩니다.
저는 미리 설치했으므로 위와 같이 “열기” 표시가 되어 있습니다.

개요화면

tistory-image
개요화면은 도커 시스템의 현재 사용현황을 보여주는 대시보드 입니다.
현재 6개의 컨테이너가 실행되고 있는 것을 볼 수 있고 각각의 리소스를 확인할 수 있습니다.

  1. 현재 시놀로지 나스의 CPU와 RAM의 사용현황을 실시간으로 보여 줍니다.
  2. synology_gitlab의 사용현황을 보여주고 있습니다. 해당 컨테이너는 CPU는 0.82%, RAM은 463MB를 사용하고 있는 것을 알 수 있습니다.
  3. 패키지 센터에서 gitlab을 설치하면 자동으로 따라서 설치되는 컨테이너 입니다. synology_gitlabredis기반으로 개발되었기 떄문에 같이 설치가 되는것 같습니다 이 처럼 컨테이너는 다른 컨테이너를 연계해서 사용할 수 있게 구성되어 있습니다.

레지스트리 관리

tistory-image
개발자들의 소스공유 사이트인 Github처럼 Docker은 Docker hub가 있어서 이미지를 공유하고 있습니다.

레지스트리 메뉴는 이 Docker hub에 있는 목록을 불러와 보여줍니다. 다시말하면 레지스트리에 있는 목록은 내 시놀로지가 아니라 아직 외부에 있는 파일이라는 뜻입니다. 이 목록에서 내가 설치하고 싶은 이미지를 찾아 다운로드 받아서 사용하게 됩니다.

  1. 내가 원하는 이미지가 있는지 검색창을 활용하여 검색을 할 수 있습니다.
  2. 원하는 이미지가 있다면 선택을 합니다.
  3. 다운로드 버튼을 누르게 되면 이미지가 내 시놀로지 나스로 다운로드가 됩니다.
  4. 명찰이 있는 것은 공식 이미지라는 뜻입니다.
  5. 인기도라고 보시면 됩니다. 별표 숫자가 높은 이미지는 관심을 가져보시는 것도 좋습니다.

tistory-image
공식적으로 사용하는 Docker hub 뿐만 아니라 다른 사설 허브도 사용할 수 있습니다.

  1. 설정 버튼을 누릅니다.
  2. 현재 Docker hub가 선택되어져 있는 것을 볼 수 있습니다. 이것을 다른 허브로 전환 할 수 있습니다.
  3. 만약 내가 원하는 Docker hub가 리스트에 없다면 다른 Hub를 등록하여 사용할 수도 있습니다.

이미지 관리

컨테이너를 생성해 주는 본체인 이미지에 대한 관리 입니다. 컨테이너가 시스템에 올라간 것을 말한다면 이미지는 시스템에 올리기 전의 파일 뭉치라고 보시면 됩니다.

이미지 추가

tistory-image
레지스트리에서 이미지를 다운로드 할 수 도 있지만 이미지관리 메뉴에서도 이미지를 추가할 수 있습니다.

이미지를 추가하는 방법은 2가지가 있는데 URL로 추가하는 방법과 파일로 추가하는 방법입니다
각각 추가하는 방법에 따라 위와 같은 추가 창을 볼 수 있습니다.
URL은 https://registry.hub.docker.com/_/mysql 처럼 직접 이미지 경로를 지정하여 올릴 수도 있고 예전에 다운로드 받아놨던 파일을 선택하여 올릴 수도 있습니다.

이미지 내보내기

이미지를 추가할 뿐만 아니라 이미지를 내보낼 수도 있습니다. 내보낸 이미지는 위에서 설명한 것 차럼 이미지 추가 > 파일에서 추가를 통해 다시 올릴 수도 있습니다.

tistory-image

  1. 내보내기 원하는 이미지를 선택합니다.
  2. 내보내기 버튼을 클릭합니다.
  3. 내보낼 위치를 선택합니다. 이미지에서는 Download를 선택했지만 아무 곳이나 상관없습니다.
  4. 약간의 시간이 지나면 해당 폴더에서 다운로드된 압축파일을 볼 수 있습니다.

이미지 실행하기

이미지를 실행한다는 것은 이미지를 컨테이너로 띄운다는 말과 같습니다. 이미지를 띄운다기 보다는 이미지 인스턴스를 하나 올린다고 보시는 것이 맞을 것 같습니다. 왜냐하면 컨테이너 이름만 다르다면 하나의 이미지로 여러 개의 컨태이너를 계속 생성할 수 있기 때문입니다.

tistory-image
실행하고자 하는 이미지를 선택하고 실행버튼을 클릭합니다.

tistory-image
컨테이너를 띄우기 위해서 몇가지 설정을 하게 됩니다.

  1. 컨테이너 이름을 입력하세요. 컨테이너이름은 현재 띄워져 있는 다른 컨텐츠와 이름이 달라야 합니다.
  2. 고급설정을 클릭하세요.

tistory-image

  1. 불의사 사고나 기타 이유로 인해 해당 컨테이너가 죽는다면 자동으로 재시작을 실행해 줍니다. 이 설정은 좋을 수도 있고 좋지 않을 수 도 있습니다. 크게 중요하지 않거나 확실한 경우가 아니면 해제를 해 놓는 것이 좋습니다.
  2. DSM의 바탕화면에 아이콘을 생성해 줍니다. 이 아이콘을 눌렀을때 웹페이지를 띄워줄지 아니면 상태 화면을 띄워줄지에 대한 선택입니다. 크게 중요하지 않습니다.

tistory-image
중요할 수 있는 부분입니다.
1번은 시놀로지 나스의 폴더 위치이고 2번은 가상시스템의 폴더 위치입니다.
1번에 어떤 파일을 업로드하거나 저장을 하면 실시간으로 해당 파일은 가상시스템의 해당 위치에 자동으로 복사가 됩니다. 실시간 동기화가 됩니다.
그래서 개발 소스를 나스 폴더에 저장을 하면서 동일한 소스가 가상시스템에도 저장이 되기 때문에 가상시스템에서 결과물을 바로 볼 수 있게 됩니다.
만약 가상시스템이 마음에 들지 않아 컨테이너를 삭제해도 원본 개발소스는 그대로 보전이 되는 것입니다. 중요합니다.

tistory-image
포트 설정도 중요할 수 있는 부분입니다.
1번은 시놀로지 나스의 포트번호이고 2번은 가상시스템(컨테이너)의 포트번호입니다.
일반적으로 2번인 가상시스템(컨테이너)의 포트번호는 이미지의 상세보기에 나와 있습니다. 이미지를 개발한 사람이 이 이미지는 몇번 포트를 사용합니다. 라고 공지를 하는 것이지요.
시놀로지 나스 포트는 본인이 지정하면 됩니다. 보통은 이미지와 동일한 포트를 사용하지만 중복되는 경우 다른 포트를 사용해도 괜찮습니다.

지정한 로컬포트는 시놀로지 제어판의 보안영역에서 포트를 개방해 줘야 합니다.
외부에서 접속을 하기 원한다면 공유기에서도 포트포워딩을 설정해 줘야 합니다.

tistory-image

  1. 변수의 값에 경로명을 입력하면 가상시스템 어디 에서 든지 해당 명력어를 실행 시킬 수 있습니다.
  2. 실행명령은 해당 컨테이너가 처음 실행되는 시점에 가장 먼저 실행되는 명령어 입니다.
    여기서는 아까 지정한 마운트경로에 있는 index.jsnode명령으로 실행시켜라 라는 뜻입니다. index.js는 기초적인 웹서버를 띄우게 제가 간략히 개발을 했습니다. Hello world를 띄워 주게 됩니다.

tistory-image

간략하게 시놀로지 나스의 도커사용법을 알아 봤습니다.
여기에도 약간 나오기는 했지만 다음시간에는 도커로 Nodejs웹서버를 실행시키는 것에 대한 포스팅을 해 보도록 하겠습니다.

Similar Posts

  • 포토샵보다 편리한 재미있는 사진편집 프로그램 포토스케이프

    사진 편집의 왕은 누가 뭐래도 아직까지는 Adobe 포토샵입니다. 포토샵의 기능은 정말 어마무시합니다. 일반인이 이것을 사용하기 위해서는 많은 공부가 필요합니다. 하지만 일반인이 필요한 기능은 그냥… 사진 자르고 화살표 붙히고 색상 환하게하는 등의 간단한 작업이 필요할 뿐인 경우가 많습니다. 이럴 때 필요한 것이 바로 포토스케이프입니다. 간단히 이미지를 자르고 돌리고 워터마크를 일괄 적용시키고 할때 쉽게 처리 할 수있습니다. […]

  • Atom 에디터의 유용한 패키지 정리

    github에서 만든 무료 Atom 에디터에서 기본적으로 설치해야 할 Packages(플러그인)을 정리해 봤습니다. === Packages used Package Website 설명 O sync-settings https://atom.io/packages/sync-settings Atom에디터의 설정을 저장해서 어디에서든 동일한 환경으로 에디팅을 할 수 있게 해줌 O atom-beautify https://atom.io/packages/atom-beautify HTML, CSS, JavaScript, PHP의 코드 정렬 O color-picker https://atom.io/packages/color-picker 에디터에서 바로 컬러값을 보고 선택할 수 있음 O Remote-FTP https://atom.io/packages/Remote-FTP 서브라임텍스트의 SFTP와 […]

  • XEICON 아이콘 폰트 사용하기

    아이콘 폰트인 XEICON을 사용하는 방법입니다. 아이콘폰트가 무엇인지 궁금하면 이전에 포스팅한 아이콘 폰트(Icon font) 자유자제로 사용하기를 먼저 읽어 보시는 것을 추천합니다. XEICON XEICON 홈페이지 바로가기 한 시대를 풍미했던 PHP 무료게시판 서비스인 제로보드가 네이버의 서포트를 받으면서 Xpressengine 바뀌었습니다. XEICON은 그 Xpressengine에서 서비스를 제공하고 있는 아이콘 폰트 서비스 입니다. 제공하는 방법과 사용 방법이 폰트어썸 (Font Awesome)과 거의 흡사하여 […]

  • BMW의 새로운 도전!! 무선충전시스템의 양산

    전기차가 지속적으로 발전을 하고 있고 현재는 한번 충전으로 거의 300km ~ 390km까지 달릴수 있는 차가 대세를 이루고 있는 상황입니다. 그정도 거리면 서울에서 부산까지 편도로 한번 찍을 수 있는 거리인데요. 그것 까지는 대단히 좋은 성과라 할 수 있습니다. 하지만 항상 그 다음이 문제가 되는 것은 그럼 어떻게 다시 서울로 올라오느냐 입니다. 그렇습니다. 바로 충전의 문제 입니다. […]

  • Gruntfile의 구조와 사용법

    Gruntjs를 사용한다고 하는것은 gruntfile.js를 다룰 줄 안다고 하는 것과 마찬가지로 gruntfile.js는 중요합니다. 중요하다고 해서 배우기가 어렵다는 말은 아닙니다. 개인의 차이는 있겠지만 보통 1~2일이면 개념을 이해 할 수 있고 1주일 정도면 구글링을 하면서 Gruntjs를 사용할 수 있을 정도로 어렵지 않습니다. 이전 포스팅에서 Gruntjs의 소개와 설치법을 작성했으니 완전 초보자이시면 이전 포스팅을 먼저 보는 것이 도움이 될것 같습니다. […]

  • CSS로 그럴듯한 버튼효과를 내보자

    별도의 라이브러리를 사용하지 않고 순수하게 CSS3만을 활용하여 버튼의 효과를 줄 수 있습니다. 급하게 퍼블리싱할때 써먹을 수 있게 정리해 놓겠습니다. 미리보기 BUTTON 1 BUTTON 2 BUTTON 3 BUTTON 4 코드설명 HTML HTML은 기본 버튼을 사용하고 .btn으로 기본속성을 지정하고 .hover로 효과의 형태를 변경하겠습니다. <button class=”btn hover1″> BUTTON 1 </button> <button class=”btn hover2″> BUTTON 2 </button> <button class=”btn […]

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다