TrueNAS 24.10 베타 Docker 살펴보기

2025. 1. 23. 14:55·TrueNAS
728x90
반응형

개요

TrueNAS 24.10 베타버전에서 Apps기능이 k3s기반에서 docker기반으로 전환되었습니다. TrueNAS의 쿠버네티스, Helm Chart기반의 Apps기능은 일종의 진입장벽이었기에, 개인적으로 굉장히 반가운 변경점 중 하나입니다. 그래서 후다닥 Proxmox에 설치해 봤습니다.

 

주요 변경점

Dashboard

뭔가 더 많아졌습니다. 베타 버전이기도 하고 VM이라 제대로 표시되는 항목이 없긴 한데.. 추후 정식 24.10을 기다려봐야 할 것 같습니다.

 

Apps GUI

Train Settings에서 표시할 앱들을 선택할 수 있습니다.

기본적으로 Stable과 Community가 있고, Enterprise와 Test는 비활성화되어 있습니다.

현재는, 베타버전이고 아직 전체 가용 앱을 마이그레이션 하진 않아서인지 81개의 앱만 나타납니다.

공식 홈페이지에 의하면 아직 docker compose를 통한 Custom App 기능이 구현되지 않았다고 합니다. 따라서 화면에 보이는 앱만 설치할 수 있는 상태입니다.

때문에, 아직은 End-User단에서는 큰 차이점을 느끼지 못합니다. 앱 설치 시 값을 채워넣는 과정도 기존과 동일합니다.

시험삼아 진입해본 FileBrowser 설치과정

내부적으로는 helm chart의 values항목이 docker compose의 항목값으로 변경되었겠지만, GUI로 조작하는 유저입장에선 느끼기 힘든 변화점이죠.

그렇지만 CLI에서 확실한 변화를 체감할 수 있습니다.

 

Docker로 컨테이너 띄워보기

shell에서 docker info를 입력하면 docker 정보가 나타납니다.

root@truenas[~]# docker info

Client: Docker Engine - Community
 Version:    27.1.1
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.16.1
    Path:     /usr/libexec/docker/cli-plugins/docker-buildx
  compose: Docker Compose (Docker Inc.)
    Version:  v2.29.1
    Path:     /usr/libexec/docker/cli-plugins/docker-compose

Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 0
 Server Version: 27.1.1
 Storage Driver: overlay2
  Backing Filesystem: zfs
  Supports d_type: true
  Using metacopy: false
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 2
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 2bf793ef6dc9a18e00cb12efb64355c2c9d5eb41
 runc version: v1.1.13-0-g58aa920
 init version: de40ad0
 Security Options:
  apparmor
  seccomp
   Profile: builtin
  cgroupns
 Kernel Version: 6.6.44-production+truenas
 Operating System: Debian GNU/Linux 12 (bookworm)
 OSType: linux
 Architecture: x86_64
 CPUs: 4
 Total Memory: 31.32GiB
 Name: truenas
 ID: 20856e79-065d-4d27-8004-5ca5df121ca4
 Docker Root Dir: /mnt/.ix-apps/docker
 Debug Mode: false
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false

ZFS파일시스템을 그대로 사용하고 있고, docker compose플러그인도 확인할 수 있습니다. 그래서 docker compose를 입력해보면 잘 응답하는 것도 확인할 수 있죠.

root@truenas[~]# docker compose

Usage:  docker compose [OPTIONS] COMMAND

Define and run multi-container applications with Docker

Options:
      --all-resources              Include all resources, even those not used by services
      --ansi string                Control when to print ANSI control characters ("never"|"always"|"auto") (default "auto")
      --compatibility              Run compose in backward compatibility mode
      --dry-run                    Execute command in dry run mode
      --env-file stringArray       Specify an alternate environment file
  -f, --file stringArray           Compose configuration files
      --parallel int               Control max parallelism, -1 for unlimited (default -1)
      --profile stringArray        Specify a profile to enable
      --progress string            Set type of progress output (auto, tty, plain, json, quiet) (default "auto")
      --project-directory string   Specify an alternate working directory
                                   (default: the path of the, first specified, Compose file)
  -p, --project-name string        Project name

Commands:
  attach      Attach local standard input, output, and error streams to a service's running container
  build       Build or rebuild services
  config      Parse, resolve and render compose file in canonical format
  cp          Copy files/folders between a service container and the local filesystem
  create      Creates containers for a service
  down        Stop and remove containers, networks
  events      Receive real time events from containers
  exec        Execute a command in a running container
  images      List images used by the created containers
  kill        Force stop service containers
  logs        View output from containers
  ls          List running compose projects
  pause       Pause services
  port        Print the public port for a port binding
  ps          List containers
  pull        Pull service images
  push        Push service images
  restart     Restart service containers
  rm          Removes stopped service containers
  run         Run a one-off command on a service
  scale       Scale services
  start       Start services
  stats       Display a live stream of container(s) resource usage statistics
  stop        Stop services
  top         Display the running processes
  unpause     Unpause services
  up          Create and start containers
  version     Show the Docker Compose version information
  wait        Block until the first service container stops
  watch       Watch build context for service and rebuild/refresh containers when files are updated

Run 'docker compose COMMAND --help' for more information on a command.

docker compose가 있다는 걸 확인했으니 잘 작동되는지도 확인해야겠죠?

무난하게 고스트 블로그를 하나 띄워보겠습니다.

아무것도 없는 깡통 TrueNAS VM이므로 'test' 스토리지 풀을 생성한 뒤

아래에 하위경로 ghost/www와 ghost/db를 생성한 후 아래처럼 작성했습니다.

#docker-compose.yml
services:
  ghost:
    image: ghost:latest
    restart: always
    ports:
      - 8080:2368
    environment:
      # see https://ghost.org/docs/config/#configuration-options
      database__client: mysql
      database__connection__host: db
      database__connection__user: root
      database__connection__password: password
      database__connection__database: ghost
      # this url value is just an example, and is likely wrong for your environment!
      url: http://truenasIP:8080
      # contrary to the default mentioned in the linked documentation, this image defaults to NODE_ENV=production (so development mode needs to be explicitly specified if desired)
      #NODE_ENV: development
    volumes:
      - /mnt/test/ghost/www:/var/lib/ghost/content

  db:
    image: mysql:latest
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: password
    volumes:
      - /mnt/test/ghost/db:/var/lib/mysql

그리고 docker compose up -d로 실행하고, TrueNAS IP:8080으로 접속하면 아래처럼 아주 무난하게 나타난 고스트 블로그를 확인할 수 있습니다.

 

Portainer 설치 및 사용

Apps페이지에 Portainer가 있습니다. 데이터 저장 경로만 지정해준 뒤 바로 설치할 수 있습니다.

아래처럼 설치가 완료되면, WEB UI버튼을 클릭해 초기설정 후 메인화면으로 진입합니다.

위에서 시험삼아 띄워본 고스트 컨테이너도 잘 보입니다.

스택을 이용해 watchtower를 띄워보겠습니다.

services:
  watchtower:
    image: containrrr/watchtower:latest
    container_name: watchtower
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      TZ: Asia/Seoul
      WATCHTOWER_CLEANUP: 'true'
      WATCHTOWER_POLL_INTERVAL: 43200
    restart: unless-stopped

무난하게 잘 작동되는 것을 보실 수 있습니다.

 

마무리

개인용 NAS를 구축할 때 헤놀로지를 가장 많이 찾는 이유는 아무래도 높은 편의성 때문입니다. 다양한 기능들을 한데 모아 OS를 설치한 후부터 즉각 사용할 수 있고, 미려한 UI와 사용자 편의성이 높은(이라고 쓰고 커스터마이징이 굉장히 제한적인) 옵션을 제공해 초보자도 바로 쓸 수 있다는 점은 굉장한 메리트입니다. 그러나, 헤놀로지로 구축하면 업데이트 과정에서 발생하는 예상치 못한 사고와 이로 인한 데이터 유실이 굉장히 부담되기도 하죠.

DSM에서 제공하는 기능들은 모두 도커 이미지로 대체할 수 있습니다. 모바일 어플도 잘 되어 있는 편이죠.

단, DSM을 설치할 때처럼 모두 한 자리에 모여있는 것이 아니고, 직접 찾아다니며 설치해야 하기 때문에 도커를 모르는 사용자는 시행착오 과정을 겪어야만 하고, 도커를 사용할 수 있는 NAS OS들의 UI가 DSM에 비해 투박하기 때문에, 이런 점에서 디메리트를 느끼는 유저도 많았습니다.

현재 TrueNAS 24.10 베타버전은 제공되는 앱들 외에 유저가 직접 Custom App을 띄우는 기능은 없지만(docker compose의 GUI화 미완료), 이미 CLI로는 docker compose 플러그인을 무리없이 다룰 수 있기 때문에 SSH접속만 할 줄 알아도 사용할 수 있으며, Portainer 설치를 통해 무리없이 GUI를 활용해 컨테이너를 띄울 수도 있게 되었습니다.

DSM과는 결이 다르긴 하지만, UI/UX도 상당히 좋은 OS이고 중소규모에 적합한 시놀로지와 달리 대규모 엔터프라이즈급을 타겟으로 한 만큼 안정성도 좋은 TrueNAS에 편의성 높은 docker를 사용할 수 있게 되었으니, 일반 개인 유저 입장에서도 가져갈 수 있는 좋은 선택지가 하나 늘어난 셈이 되었네요.

 


 

관련 글

2025.01.23 - [TrueNAS] - TrueNAS SCALE에서 Docker로 앱 설치하기

 

TrueNAS SCALE에서 Docker로 앱 설치하기

개요이번 업데이트의 가장 큰 특이점은 Apps 기반이 쿠버네티스(k3s)로부터 Docker체제로 변경되었다는 것입니다. 이로 인해 개인이 직접 NAS를 구축할 때 제일 크게 느낄 수 있던 진입장벽이 사라졌

worklazy.net

 


 

출처

1. https://www.truenas.com/docs/scale/24.10/gettingstarted/scalereleasenotes/

 

24.10 (Electric Eel) Version Notes

Highlights, change log, and known issues for TrueNAS 24.10 release versions.

www.truenas.com

728x90
반응형
'TrueNAS' 카테고리의 다른 글
  • Proxmox에서 TrueNAS의 ZFS를 이용해 헤놀로지 안전하게 사용하기
  • TrueNAS SCALE에서 Docker로 앱 설치하기
  • TrueNAS 부팅 안될 때 자동백업파일 추출하기(2)
  • TrueNAS 부팅 안될 때 설정파일 추출하기(1)
펜타네스트
펜타네스트
하라는 일은 안하고 월급루팡하고 싶은 직장인의 취미 기록장
    반응형
    250x250
  • 펜타네스트
    월급루팡의 꿈
    펜타네스트
  • 전체
    오늘
    어제
    • 분류 전체보기 (65)
      • Apps (17)
      • Homeserver (8)
      • Kubernetes (5)
      • Nextcloud (7)
      • Proxmox (4)
      • TrueNAS (12)
      • Torrent (7)
      • ETC (5)
  • 블로그 메뉴

    • 홈
  • 링크

    • 월급루팡의 꿈
    • 월급루팡의 일상
  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
펜타네스트
TrueNAS 24.10 베타 Docker 살펴보기
상단으로

티스토리툴바