도커를 활용해보자 - NAS에서 Docker 활용하기(SSH TELNET 접속)
이번시간에는 NAS에 설치 되어 있는 도커를 활용하는 방법을 SSH Telnet 접속을 통해서 접근 및 활용하는 방법에 대해서 공부해보도록 하겠습니다.
이전시간의 NAS의 GUI를 통해서 도커를 활용하는 방법은
도커를 활용해보자 - NAS에서 Docker 활용하기(도커 어플리케이션)
해당 링크를 보시길 바랍니다 ^^
자, 이제 시작해보도록 하겠습니다.
저는 NAS에 SSH Telnet 포트를 살짝 바꾸어 놨습니다. (원래는 SSH 포트는 22번 포트입니다)
이제 Putty를 이용해서 NAS에 접속해보도록 하겠습니다.
해당 접속 후, 이전에 설치한 도커 버전에 대해서 간략하게 설명하도록 하겠습니다.
도커가 Client 와 Server 두가지 종류로 있음을 확인할 수 있습니다.
그 이유에는 도커는 하나의 실행파일이지만, 실제로 클라이언트와 서버역할을 각각 할 수 있기 때문입니다. 도커 커맨드를 입력하면 도커 클라이언트가 도커 서버로 명령을 전송하고 결과를 받아 터미널에 출력해 줍니다.
자, 이제는 도커의 현재 실행컨테이너 목록을 확인하는 'ps' 명령어를 사용해 보기로 합니다.
( -a 옵션을 사용할 경우, 실행 미실행상관없이 도커에 올라가있는 모든 컨테이너 목록이 보입니다)
확인해보니, 저번시간에 올렸던 'ubuntu1' 컨테이너가 열심히 실행되고 있음을 확인할 수 있네요.
다음에는 도커의 이미지 목록을 확인하기 위해 'images' 명령어를 입력 해보도록 합니다.
총 이미지가 세개가 있음을 확인했구요. ubuntu , mariadb, centos 이미지들이 보입니다.
이번에는 방금 조회한 이미지를 확인해서 도커를 컨테이너를 생성 및 실행하는 명령어를 입력해보도록 하겠습니다.
먼저 도커를 생성 및 실행하는 명령어는 'run' 입니다. 'run' 다양한 옵션들이 존재하는데요. 그중 몇몇을 소개해드리도록 하겠습니다.
'-it' 옵션은 '-i'와 '-t'옵션을 합쳐놓은 것 입니다.
'-i' 옵션은 interactive, 컨테이너와 상호적으로 주고받는다는 의미이고
'-t' 옵션은 tty(Tele Type writer), 즉 터미널 환경을 구성하겠다는 의미입니다.
즉, -i 옵션은 유저가 명령어를 실행할 때, 그에 대한 출력내용을 보여주는 것이구요.
-t는 터미널 환경을 구성해 유저가 명령어를 실행 할 수 있는 환경을 만들겠다는 의미입니다.
그리고 /bin/bash는 컨테이너 실행 시, bash쉘을 사용하겠다는 의미가 됩니다.
이 세가지 옵션으로 도커의 컨테이너는 정상적으로 실행됨을 확인 할 수 있습니다.
다음 사례는 도커의 이미지를 다운 받는 명령어인 'pull' 입니다.
위의 그림에 보시겠지만 'pull' 명령어를 통해서 ubuntu 16.04 version 을 다운받도록 하였고,
'images' 명령어를 통해서 정상적으로 다운받아져있는 모습을 볼 수 있습니다.
이번에는 다운받은 ubuntu 16.04 버전을 이용해서 컨테이너를 실행하고 포트를 설정하는 법을 배우도록 하겠습니다.
도커를 실행하면서 '-p' 옵션에 '로컬포트:컨테이너포트'(ex 30000:3000) 을 입력하게 되고 컨테이너가 실행되게되면, 포트에 해당 포트가 등록되어 있음을 확인 할 수 있습니다.
또 다른 예시로,
이번에는 위의 '-p' 옵션 외에 '-d'옵션과 '--name' 옵션을 추가하였습니다.
'-d' 옵션은 detached mode(백그라운드 모드) 를 의미하는 것으로 도커 컨테이너 실행 시, 데몬처럼 백그라운드로 수행토록 하는 옵션입니다.
또한, '--name' 옵션은 실행되는 도커 컨테이너의 이름을 정할 수 있는 것으로 이번 예시에는 'ubuntu_16.04' 라고 정하여 보았습니다.
만약 '--name' 옵션을 지정해 주지않는 다면, 도커는 임의의 이름을 정하게 됩니다.
다음은 실행중인 컨테이너를 종료(삭제x)하는 명령어인 'stop' 입니다.
해당 명령어 입력 시, 도커 컨테이너가 종료됨을 확인 할 수 있습니다.
다음은 도커의 컨테이너를 삭제하는 명령어인 'rm' 입니다.
해당 명령어 입력 시, 도커 컨테이너가 삭제됨을 확인 할 수 있습니다. (앞의 그림과 차이점은 docker ps -a 로 컨테이너목록을 확인했다는 것을 인지해주세요 ^^)
다음 사례는 도커의 이미지를 삭제하는 명령어인 'rmi' 입니다.
도커 이미지가 삭제 시, IMAGE ID로 해당 이미지를 정하여 삭제 할 수 있습니다.
저는 ubuntu latest version 을 삭제해보았습니다.
마지막으로는 실행되고 있는 컨테이너에 접속(재접속)하는 'attach' 명령어 입니다.
해당 보이는데로 'attach' 명령어를 통해서 이미 실행되고 있는 컨테이너에 재접속하는 것을 확인 할 수 있습니다.
반대로 컨테이너의 종료 없이 나오는 방법은 ctrl+p, ctrl+q 를 연속으로 눌러주시면 나올 수 있습니다. (컨테이너를 종료시키면서 나오는 것은 'exit' 명령어를 넣어주시면 됩니다)
지금까지 도커를 Telnet에서 컨트롤 하는 것을 간단히 배워보았습니다.
명령어 몇개로 가벼운 가상머신을 올렸다 지웠다하는 것이, 무궁무진하게 다양하게 활용 할 수 있겠구나를 느끼게 될 수 있는 글이었는데요.
다음 시간에는 더 많은 도커의 활용법에 대해서 알아보도록 하겠습니다.