시놀로지 NAS Docker에서 컨테이너로 이미지 만드는 법

시놀로지에서 Docker을 잘 운영하려면 GUI로 제공되는 기능 이외에 CMD(ssh)를 다루기는 해야 합니다. GUI로 제공되지 않는 기능 중에 하나가 컨테이너로 이미지를 만드는 기능입니다. Docker을 활용하다 보면 요긴하게 활용되는 기술인데 왜 제공이 되지 않은지는 모르겠습니다.

이미지로 컨테이너 만들어 실행하기

먼저 이미지로 컨테이너를 만들어 실행시켜 봅니다. 이 작업은 어렵지 않겠지요? 혹시 완전 초보시라면 아래에 이전에 포스팅한 내용을 확인해 주세요.

시놀로지 Docker 기본 사용법

tistory-image
시놀로지의 Docker앱에서 좌측 컨테이너 메뉴를 보면 우측에 모든 컨테이너들을 볼 수 있습니다. 저는 테스트로 이 중에서 strapi_strapi 컨테이너를 이미지로 만들 예정입니다.

시놀로지의 ssh 기능 활성화 하기

위에 언급했다시피 현재 컨테이너로 이미지를 만드는 명령어는 시놀로지 Docker앱에서는 할 수 없습니다. 다만 시놀로지에 ssh로 접속해서 Docker CLI명령어로 만들 수 있습니다. 그래서 먼저 시놀로지에 ssh로 접속할 수 있게 설정해야 합니다.

ssh는 해커들의 좋은 먹이감입니다. ^^ 웬만하면 어려운 포트로 설정해 놓고 비활성화시켜놨다가 필요할 때만 활성화시켜서 사용하기를 추천합니다.

tistory-image
시놀로지 DSM의 제어판에서 터미널 및 SNMP 메뉴로 들어갑니다.

tistory-image

  1. SSH의 기본 포트는 22인데 이 포트를 어려운 포트로 변경해 놓는 것을 추천합니다.
  2. SSH 서비스 활성화를 체크합니다.

Telnet은 암호화가 되지 않기 때문에 사용하지 않는 것을 추천합니다. 만약 외부나 다른 네트워크에서 SSH를 사용하려고 한다면 방화벽도 열어줘야 합니다. 다만 해커들의 공격에 주의를 기울여야 합니다. 열어놓으면 어떻게 알았는지 그지같이 막~ 달라붙습니다.

ssh로 시놀로지에 접속하기

이제 ssh로 시놀로지에 접속해야 합니다.
맥이나 리눅스 같은 경우는 자체 CMD창에서 바로 ssh로 접속이 가능하지만 윈도에서는 주로 putty를 사용합니다. 하지만 windows10에서부터는 자체 CMD창에서도 접속할 수 있습니다.

Windows10에서 SSH 접속하기

먼저 [윈도우키] + [R] 키를 입력하여 명령 프롬프트 창을 엽니다.
Windows10에 기본적으로 SSH가 설치되어 있어야 할 텐데 만약에 아래의 명령어처럼 실행되지 않는다면 SSH를 설치해 줘야 합니다.

> ssh

'ssh' is not recognized as an internal or external command,
operable program or batch file.

실행이 되지 않을 경우 Windows10 제어판에서 OpenSSH 설치하기

tistory-image
제어판에서 메뉴를 클릭합니다.

tistory-image
선택적 기능을 클릭합니다.

tistory-image
기능 추가를 클릭합니다.

tistory-image
OpenSSH 클라이언트를 클릭하여 설치해 줍니다.

이번에 다시 한번 ssh명령어를 실행시키면 아래와 같은 메시지를 볼 수 있을 것입니다.

> ssh

usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface]
           [-b bind_address] [-c cipher_spec] [-D [bind_address:]port]
           [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11]
           [-i identity_file] [-J [user@]host[:port]] [-L address]
           [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]
           [-Q query_option] [-R address] [-S ctl_path] [-W host:port]
           [-w local_tun[:remote_tun]] destination [command]

SSH로 접속하기

[윈도키] + [R] 키를 입력하여 명령 프롬프트 창을 열고 아래 형식의 명령어를 입력합니다.

ssh [계정]@[접속 서버 주소] -p [포트번호]

ssh [email protected] -p 34234  

The authenticity of host '[192.168.0.233]:34234 ([192.168.0.233]:34234)' can't be established.
ECDSA key fingerprint is SHA256:4 GTuasdas/WXoi+3 RwI4 swsasd47 kBW2 hlZJ8 to.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes

yes 또는 no를 입력합니다. yes를 타이핑해서 입력하시면 됩니다.

ssh [email protected] -p 34234  

The authenticity of host '[192.168.0.233]:34234 ([192.168.0.233]:34234)' can't be established.
ECDSA key fingerprint is SHA256:4 GTuiJVczxc/WXoi+3 RwI4 pKzxc47 kzxc2 hlZJ8 to.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[192.168.0.233]:34234' (ECDSA) to the list of known hosts.
[email protected]'s password:

패스워드를 입력합니다. 시놀로지 계정(아이디)의 비번과 동일합니다.

ssh [email protected] -p 34234  

The authenticity of host '[192.168.0.233]:34234 ([192.168.0.233]:34234)' can't be established.
ECDSA key fingerprint is SHA256:4 GTuiJVJzrxcz/WXoi+3 RwI4 zxczxgSjQ47 kBW2 hzcJ8 to.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[192.168.0.233]:34234' (ECDSA) to the list of known hosts.
[email protected]'s password:

Synology strongly advises you not to run commands as the root user, who has
the highest privileges on the system. Doing so may cause major damages
to the system. Please note that if you choose to proceed, all consequences are
at your own risk.

admin@myNAS:~$

admin@myNAS:~$이런 프롬프트가 나오면 ssh로 시놀로지 NAS로 무사히 접속이 된 상태입니다.
이제는 관리자(sudo) 명령어로 변경을 해야 합니다. Docker의 명령어는 관리자 명령으로만 실행되기 때문입니다.

admin@myNAS:~$ sudo -i
Password:

sudo -i명령어를 실행시키고 Password를 입력합니다.

admin@myNAS:~#

그러면 위와 같이 $프롬프트가 #프롬프트로 변경이 됩니다.
이제 Docker명령어를 실행할 준비가 되었습니다.

컨테이너로 이미지 만드는 명령어

먼저 아래의 명령어로 현재 Docker의 컨테이너를 확인해 봅니다.

admin@myNAS:~# docker ps -a

CONTAINER ID        IMAGE                           COMMAND                  CREATED             STATUS                      PORTS                     NAMES
999999999999        strapi/strapi:latest            "docker-entrypoint.s…"   2 months ago        Up 25 hours                 0.0.0.0:6650->1337/tcp    strapi_strapi
999999999999        adminer:latest                  "entrypoint.sh docke…"   2 months ago        Up 25 hours                 0.0.0.0:6660->8080/tcp    strapi_adminer
999999999999        postgres:latest                 "docker-entrypoint.s…"   2 months ago        Up 25 hours                 0.0.0.0:15432->5432/tcp   strapi_postgres
999999999999        mongo:latest                    "docker-entrypoint.s…"   3 months ago        Exited (0) 2 months ago                               strapi_mongo
999999999999        mongo-express:latest            "tini -- /docker-ent…"   3 months ago        Exited (143) 2 months ago                             strapi_mongo-express
999999999999        synology/docviewer:1.3.0.0125   "sh -c 'while true; …"   3 months ago        Up 25 hours                                           synology_docviewer_2
999999999999        synology/docviewer:1.3.0.0125   "sh -c 'while true; …"   3 months ago        Up 25 hours                                           synology_docviewer_1

이제 이 중에서 하나의 컨테이너(strapi_strapi)를 이미지로 만들어 보도록 하겠습니다. 명령어 형식은 아래와 같습니다.

docker commit [컨테이너명] [이미지명:태그]

admin@myNAS:~# docker commit strapi_strapi test_strapi:1.0

새로 생성된 이미지 확인

이제 생성된 이미지를 확인 볼 수 있습니다. 먼저 명령 프롬프트에서는 아래의 명령어로 확인할 수 있습니다.

docker images 명령어로 현재의 이미지를 확인할 수 있습니다. 또한 다.

admin@myNAS:~# docker images

REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
test_strapi             1.0                 3a43b73d9e04        6 hours ago         1.15GB
postgres                latest              c5ec7353d87d        2 months ago        314MB
strapi/strapi           latest              87ed59852c1d        2 months ago        997MB

또한 synology의 Docker에서도 확인할 수 있습니다.

tistory-image

  1. Synology의 Docker의 좌측 메뉴 중 이미지 메뉴를 선택합니다.
  2. 우측 리스트 중 test_strapi:1.0 이미지를 확인할 수 있습니다.
  3. 또한 리스트를 선택한 후 내보내기를 선택하면 이미지를 따로 저장도 가능합니다.

Similar Posts

  • 무료로 아이콘 폰트 사용하기 – XEICON 편

    웹사이트를 개발 시 아이콘을 제작하려고 하는데 딱히 디자이너가 없는경우~, 아이콘을 사용하고 싶은데 라이선스를 구매하기 어려운경우~ 이렇때 고맙게도 무료이면서 간단하게 아이콘을 사용할 수 있는 방법이 있습니다. 대표적으로 폰트어썸이 있지만 우리나라에서도 서비스를 해주는 곳이 있습니다. 바로 XEICON 입니다. XEICON XEICON 홈페이지 바로가기 XEICON은 예전에는 제로보드로 이름을 날렸고 현재는 Xpressengine이라는 브랜드네임으로 서비스를 하고 있는 XE프로젝트에서 Fonts형 아이콘 형태로 […]

  • 구글 스프레드시트에서 콤보박스 적용하기

    MS 엑셀을 대체할 만한 제품 중에 구글 스프레드시트는 좋은 대안이 될 수 있습니다. 물론 MS 엑셀의 파워풀한 기능을 모두 사용할 수는 없지만 웬만한 기능은 동일하게 구현이 가능합니다. 더욱이 인터넷만 된다면 어디에서든지 사용할 수 있고 스마트폰에서도 무료로 사용이 가능하기 때문에 상당한 이점이 있습니다. 엑셀의 기능 중에 콤보박스 기능을 구글 스프레드시트에서도 쉽게 구현을 할 수 있습니다.. 콤보박스 […]

  • 두개의 텍스트, 이미지, PDF, 엑셀, 폴더를 비교할 수 있는 Diffchecker 웹서비스

    두개의 텍스트나 이미지, PDF, 엑셀, 폴더를 비교할 수 있는 웹서비스를 소개합니다. 간단한 비교는 무료로 이용할 수 있어서 갑자기 필요할 경우 요긴하게 사용할 수 있습니다. https://www.diffchecker.com 텍스트 비교 Original Text에 원본 텍스트를 넣고 Changed Text에 변경된 텍스트를 넣은 후 Find Difference 버튼을 클릭하면 2개의 문서를 비교해 줍니다. 2개의 문서 중 다른 부분을 표시해서 보여줍니다. 이미지 비교 […]

  • 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 […]

  • Grunt 소개와 설치방법

    Node.js의 탄생으로 인해 javascript진영이 비약적인 발전을 이루고 있으며 그러한 발전에 견인차 역활을 한 Grunt라는 것이 있습니다. 이러한 프레임워크를 javascript Task기반 빌드 Tools이라고 하는데 과연 이것이 무엇인지, 그리고 어떻게 설치하고 사용하는지에 대해 포스팅을 하려고 합니다. Gruntjs란 무엇인가. Grunt 또는 Gruntjs라고 하며 인터넷을 검색하면 Task기반 빌드 툴이라고 나옵니다. 풀어서 설명을 하면… Node.js를 기반으로 하고있는 무수한 패키지들 중에 […]

  • 이미지 하단에 생기는 이상한 공백 없애기

    HTML로 레이아웃을 설정하다보면 DIV태그 안 이나 P태그 안에 이미지가 있는 경우 이미지 하단에 약 1~3px정도의 공백이 생기는 경우를 볼 수 있습니다. 그 공백을 없애려고 이리 찾아보고 저리 찾아봐도 해결이 잘 되지 않는데요. 이것을 없애는 방법을 정리해 보려고 합니다. ▲ 하단에 파란색의 공백이 있음(표시를 위해 백그라운드색을 파란색으로 했음) <div><img src=”https://placeimg.com/400/300/any” /></div> 원인 위와 같이 Image를 DIV나 […]

답글 남기기

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