NAS & ODROID/Docker NAS

Docker NAS - LinuxServer.io 활용하기

awesometic 2019. 5. 7. 19:44
반응형
  • 퍼가실 땐 링크로 퍼가주시고, 인용할 경우 출처를 꼭 남겨주세요.
  • 막히는 부분이나 이상한 부분, 더 괜찮은 아이디어는 댓글로 자유롭게 달아주세요.
  • 제 블로그에는 구글 광고가 삽입되어 있습니다. 괜찮으시다면 광고 한 번씩 눌러주세요. 힘도 되고 책임감도 높여줘서 글의 퀄리티가 향상됩니다. :)

LinuxServer.io

이제 아시다시피 Docker NAS를 구축하려면 NAS 구축을 용이하게 해주는 이미지들이 필요합니다.

도커 저장소에 좋은 이미지들이 많이 있지만, 특히 개인 서버 구축에 힘써주는 단체가 있어요.

LinuxServer.io란 곳입니다.

저희가 보통 NAS에서 사용하고자 하는 서비스들, Plex, Transmission, NextCloud 등 뿐만 아니라 개인 서버에도 쓸 만한 좋은 서비스들, Nginx, MariaDB, Let's Encrypt 등등 굉장히 많은 개인 서버용 이미지들을 제공합니다.

단순히 제공만 해주는 게 아니라, 그 서비스의 핵심 기능들을 모두 살릴 수 있도록 설정해놨어요.

어떻게 이루어져 있는지 살펴볼게요.

LinuxServer.io 이미지 구조

Transmission 이미지로 예를 들어보겠습니다.

LinuxServer.io 이미지들은 사용 방법도 굉장히 잘 되어 있습니다.

위의 링크를 타고 들어가보시면 지원 환경, 사용법, 환경 변수, 추가 옵션, 버전 정보 등등 설명이 쭉 나와 있습니다. 꽤 디테일한 편이기 때문에 원래 도커를 아시는 분들은 이 설명만 보고도 바로 할 수 있을 정도입니다.

가장 중요한 부분, 사용 방법 쪽을 봐볼게요.

기본 사용법

도커 명령어로 바로 실행하는 방법입니다.

docker create \
  --name=transmission \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Europe/London \
  -e TRANSMISSION_WEB_HOME=/combustion-release/ `#optional` \
  -p 9091:9091 \
  -p 51413:51413 \
  -p 51413:51413/udp \
  -v :/config \
  -v :/downloads \
  -v :/watch \
  --restart unless-stopped \
  linuxserver/transmission

이대로 복사 붙여넣기를 하고 싶으시겠지만, 이건 그냥 큰 틀이기 때문에 여기서 조금 수정을 해야만 해요. :)

한 줄씩 볼게요.

docker create는 컨테이너를 하나 생성하겠단 명령어입니다. 생성할 때 옵션들이 아래에 쭉 나열되어 있는 거예요.

--name 은 생성될 컨테이너의 이름입니다.

-e는 환경 변수를 설정해주는 곳입니다. 이미지를 만들 때 어떤 환경 변수를 설정할 지 정할 수 있는데, 이 이미지는 4개의 환경 변수를 외부에서 설정할 수 있도록 열어준 거예요. -e TZ=Europe/London 을 넣으면 서비스의 타임존이 런던으로 설정되는 거겠죠, 만약 저거 대신 -e TZ=Asia/Seoul을 넣는다면 타임존이 서울로 설정됩니다.

-p는 외부로 연결될 포트를 정해줍니다. 포트포워딩이예요. -p 9091:9091이라면, 호스트 PC의 9091 포트가 이 컨테이너의 9091 포트로 연결됩니다.

-v는 호스트 PC와 컨테이너 사이의 공유 디렉토리를 정해주는 겁니다. 사용법에서는 완성되지 않은 상태이고, -v /config/directory/to/transmission:/config 처럼 -v {HOST_PC}:{CONTAINER} 형식으로 적어줘야 합니다. LinuxServer.io는 거의 모든 이미지가 이미지 안에 /config 디렉토리가 있는데, 해당 서비스의 설정 파일들을 이 곳에 모아주도록 해놨습니다. 호스트 PC와 공유하면 굳이 컨테이너에 접속하지 않아도 편하게 설정 파일을 바꿀 수 있어요. 그리고 /config 디렉토리를 백업해두면 다시 LinuxServer.io의 이미지로 컨테이너를 만들어도 똑같은 설정의 서비스를 사용할 수 있습니다.

트랜스미션이다보니 다운로드 디렉토리와 토렌트 파일을 지켜보는 디렉토리도 공유 디렉토리로 설정할 수 있네요.

--restart unless-stopped 부분은 컨테이너가 재시작될 조건을 정해주는 겁니다. 이대로 옵션을 주면 말 그대로 사용자가 정지시키지 않는 이상 계속 재시작될 겁니다. 재부팅 후에 알아서 재시작되게 하려면 이 옵션을 꼭 줘야 해요.

마지막으로 linuxserver/transmission 부분은 어떤 이미지를 사용할지 정해주는 부분입니다. 이미지를 미리 다운받지 않아도 도커 허브에서 알아서 다운받아서 진행할 수 있습니다. 로컬에 이미 있다면 로컬의 이미지를 먼저 사용합니다.

이 모든 내용은 이미지 정보 페이지의 Parameters 항목에도 나와 있습니다. 어떤 이미지든 사용 전 꼭 참고하세요.

추가 사용법

LinuxServer.io는 서비스 별로 각자 사용법이 조금 다르고, 기능도 조금 다르기 때문에 추가 사용법도 제공해줍니다. 예를 들어 이 트랜스미션 이미지에는 Securing the webui with a username/password.항목이 있네요. 웹 UI에 암호를 거는 기능은 트랜스미션의 기본 기능인데, LinuxServer.io에서는 각 서비스의 기능들을 존중하기 때문에 친절하게 알려줍니다.

반응형