ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 시놀로지에 portainer(도커 관리 프로그램) 설치하기
    IT/Docker 관련 2022. 12. 1. 22:48

     시놀로지에도 나름 도커 관리하기 쉽도록 UI가 만들어져 있지만

    portainer 처럼 도커 관리에 올인한 편의툴을 써보면 아무래도 시놀로지 도커관리툴은 불편하게 느껴진다.

     

     시놀로지 도커 관리툴이라고 해서 일상적으로 사용하는 데 기능이 불편한 것은 아니다.

    오히려 레포지토리 검색 기능은 도커를 잘 몰라도 쓸수 있기도 해서 되려 더 좋기도 하다.

     

     그래서 두개 다 설치해서 사용하면 더 좋지 않을까하고

    시놀로지에도 portainer를 설치하기로 했다.

    볼륨 설정 화면

     어 그런데 볼륨 설정을 확인하는데 portainer 설정에 필요한 /var/run/docker.sock 폴더에 접근할 수가 없다.

    https://docs.portainer.io/start/install/server/docker/linux

     

     관리툴에는 접근이 불가하지만 시놀로지에 SSH 포트 설정하여 putty로 접근하여 설치를 진행하면 되긴 된다.

     하지만 시놀로지에 중요한 데이터들도 보관하고 있고, 괜히 SSH를 잘못 건드릴까 싶어 또는 SSH 열어놓고 깜빡할까 싶어 굳이 SSH로 접속하여 설치를 진행하진 않다면 제어판에 작업스케줄러를 통해 명령문을 실행할 수 있다.

    작업 스케줄러 화면
    스케줄 생성 화면

    상단의 생성 버튼을 누른후, 아래 화면과 같이 진행하면 된다.

    1. 작업명은 아무렇게나 쓰고, 사용자는 root로 설정한다.

    2. 스케줄은 적용 후, 바로 실행되지 않도록 시간을 지정한다.

    3. 작업 설정에 사용중인 이메일을 입력하여 작업 경과에 대해 보고 받을수 있도록 한다.

    4. 사용자 정의 스크립트에 portainer 설치 명령어를 입력 한다.

    docker run -d -p 8000:8000 -p 9000:9000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /volume1/docker/portainer/data:/data portainer/portainer-ce:latest

    docker run -d -p 8000:8000 -p 9000:9000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /volume1/docker/portainer/data:/data portainer/portainer-ce:latest

    - 8000번이 http접속포트라고 하는데 9000번으로 접속해야 접속이 가능해서 9000번 포트를 추가로 포워딩하도록 구문을 추가했다.

    - docker/portainer/data 경로로 폴더를 미리 만들어야한다.

    - volume2를 사용중이라면 volume1을 2로 변경한다.

    - latest를 2.16.2 등으로 버전을 명시해도 된다. (2022.12.01 작성기준 가장 최신버전)

     

     스케줄 생성이 완료되면 생성된 스케줄을 클릭하고 상단의 실행버튼을 누르면 스크립트가 실행된다.

    SSH로 붙는 것보다 접근성이 좋다고 하더라도 이것도 root에서 명령문을 바로 치는 것이라 스크립트 문에 오류가 없도록 주의 해서 써야한다.

     

    이전에 표시된 메시지 추가:

    Unable to find image 'portainer/portainer-ce:2.16.2' locally
    2.16.2: Pulling from portainer/portainer-ce
    772227786281: Pulling fs layer
    96fd13befc87: Pulling fs layer
    0bad1d247b5b: Pulling fs layer
    b5d1b01b1d39: Pulling fs layer
    b5d1b01b1d39: Waiting
    772227786281: Verifying Checksum
    772227786281: Download complete
    96fd13befc87: Verifying Checksum
    96fd13befc87: Download complete
    772227786281: Pull complete
    b5d1b01b1d39: Verifying Checksum
    b5d1b01b1d39: Download complete
    96fd13befc87: Pull complete
    0bad1d247b5b: Verifying Checksum
    0bad1d247b5b: Download complete
    0bad1d247b5b: Pull complete
    b5d1b01b1d39: Pull complete
    Digest: sha256:f7607310051ee21f58f99d7b7f7878a6a49d4850422d88a31f8c61c248bbc3a4
    Status: Downloaded newer image for portainer/portainer-ce:2.16.2
    707738ea2baae55ea28e012903b1ac4deece9dd5ea37271e86d0a8a9719ac1ef

     

    마지막 성공 이메일

    이메일 화면

     스크립트가 정상적으로 실행되면 표준 출력문에 한줄로 uuid 같은것이 출력된다.

     

     필자도 작업하면서 2번정도 오류가 발생했는 데 매칭되는 폴더 경로 오류 또는 이미 매칭된 포트 때문에 포트포워딩 오류가 발생했다.

     

    * 포트포워딩 오류 메시지 예시 : docker: Error response from daemon: driver failed programming external connectivity on endpoint portainer (abc250005c84b9f2a74035a14541157a4dca90c6cb4cd4b00f6fb2cc3754b9ab): Bind for 0.0.0.0:18000 failed: port is already allocated.

    * 폴더 경로 오류 메시지 예시 : docker: Error response from daemon: Bind mount failed: '/docker/portainer/data' does not exists.

     

    정상적으로 완료하였다면

    시놀로지 포트가 192.168.1.x 라면 192.168.1.x:9000으로 접속하여 portainer UI를 확인할 수 있다.

    첫 계정을 만들어주고 바로 사용하면 된다.

    댓글

Designed by Tistory.