Docker를 사용한 서비스 구성의 편리성

Docker 로고
Docker 공식 홈페이지

지난 글에서 한번 설명을 했었죠. Docker는 컨테이너 기반의 리눅스 가상화 도구입니다.

본래 도커는 가상화 목적으로 제작된 도구이지만, 가상화가 가져다주는 장점 (내부 환경이 제작자 의도대로 구성되어 있다) 덕분에 나스에 서비스를 편리하게 설치하는 방법으로 활용되고 있죠.

그래서 이번 시리즈는 도커를 통해 배포되는 서비스를 소개하고, 이를 최소한의 이해와 수정으로 사용할 수 있도록 설치 코드 프리셋을 제공해 드리려고 해요.

자신의 아키텍처가 뭔지는 알아 둡시다

도커가 아무리 사용자 환경에 상관없이 설치를 제공한다고는 해도, 정말 모든 곳에 같게 설치되는 것은 아니에요. 컴퓨터에는 아키텍처라는 것이 있는데, 기본적으로 이게 다르면 설치 환경이 달라질 수밖에 없어요.

문제는 도커 이미지가 모든 아키텍처를 제공하지 않을 수도 있다는 건데요. 지원 여부는 Docker Hub의 경우 이미지의 태그를 확인해 보면 알 수 있죠.

linuxserver/transmission의 이미지 검색 결과

LinuxServer.io에서 제공하는 Transmission 이미지의 검색 결과입니다. x86-64, arm 그리고 arm64 태그가 보이죠? 이게 바로 지원하는 아키텍처에요.

도커는 원래 x86 대상의 도구였기 때문에, x86 기반의 데스크톱 서버는 (CPU가 Intel이나 AMD라면) 도커허브에 있는 대부분의 이미지를 사용할 수 있습니다. 그러나 그렇지 않은 경우라면 (라즈베리파이와 같은 대부분의 SBC의 경우) 해당 아키텍처를 지원하는 이미지인지 확인을 해 봐야 합니다.

저는 arm64와 x86-64 아키텍처 두 가지로 테스트하고 글을 쓸 거예요. 따라서 두 아키텍처의 설치 코드가 차이가 발생하거나, arm64 아키텍처에서 설치할 수 없을 때는 이를 따로 알려주고 글을 시작하도록 하겠습니다.

하지만 유명한 서비스들 위주로 소개를 할 것이기 때문에, 대부분은 둘 다 무리 없이 동작할 거예요.

Docker Compose를 ‘알아만’ 둡시다

Docker Compose 로고
Docker Compose 소개 문서

Docker Compose는 여러 개의 컨테이너로 구성된 도커 어플리케이션을 정의할 수 있게 하는 도구입니다. docker-compose.yml이라고 하는 YAML 서식의 파일에 구성을 기록하고, docker-compose up이라는 명령어를 통해 해당 구성으로 도커 컨테이너를 실행할 수 있게 합니다. 이해가 잘 안 되죠?

우리는 이걸 그냥 도커 설정을 더 정교하게 할 수 있는 도구라고만 생각합시다. 앞으로 제공할 코드가 각 서비스에 대한 docker-compose.yml 구성 프리셋이라서, 그냥 그렇다는 걸 알려만 드리는 거예요.

심지어 우리는 docker-compose.yml 파일을 만들고 docker-compose up 같은 명령어를 콘솔에 칠 생각도 없습니다. Portainer를 설치해서 웹으로 관리할 거예요.

Portainer

Portainer 로고
Portainer 공식 홈페이지

Portainer는 도커 관리 웹 패널입니다. 기능이 꽤 강력해서 원격지의 도커를 관리한다거나 할 수도 있긴 한데요, 우리는 그냥 도커가 깔린 서버에 같이 깔아서 local로만 사용할 겁니다.

포테이너에는 Stack이라고 하는 관리 메뉴가 있는데요. 여러 개의 컨테이너로 구성된 도커 어플리케이션을 코드를 통해 관리하는 방법이에요. 즉, 도커 컴포즈를 사용한다는 의미입니다.

그래서 우리는 도커와 포테이너 설치까지만 명령어로 설치하고, 나머지는 포테이너를 통해서 웹으로 작업할 거예요. 물론, 서비스가 설치될 폴더를 만들어 둔다거나 하는 부분은 콘솔이나, 적어도 FTP나 SMB와 같은 방법으로 해야 합니다. 하지만 이 정도는 별로 어렵지 않죠.


앞으로 할 내용

첫 시간은 서버에 도커와 포테이너를 설치하고, Add stack 버튼을 눌러보는 단계까지 진행할 거예요.

그리고 그 이후에는 재미있어 보이는 순서대로 나스에서 실행할 만한 서비스를 설치해 볼 겁니다.

댓글남기기