본문 바로가기
반응형

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

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

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

시놀로지 Docker 기본 사용법


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

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

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

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


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

  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 설치하기


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


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


기능 추가를 클릭합니다.


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 admin@192.168.0.233 -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 admin@192.168.0.233 -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.
admin@192.168.0.233's password:

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

ssh admin@192.168.0.233 -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.
admin@192.168.0.233'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에서도 확인할 수 있습니다.

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

나만모르는 이야기

여행, 맛집,IT, 리뷰에 대한 이야기를 공유하는 블로그 .