컨텐츠로 건너뛰기

시놀로지에 Portainer 설치 (리버스 프록시 + 웹소켓)

웹에서 도커(컨테이너 매니저)이미지를 바로 실행할 수 있도록 도와주는 포테이너를 빠르게 시놀로지에 설치해 보겠습니다.

  • 외부망에서 접속을 희망하시는 경우 포트포워딩 혹은 리버스 프록시 설정(Step3참고), 시놀로지의 DDNS혹은 개인 도메인이 필요합니다.

  • 마찬가지로, 개인 도메인을 사용하시고, 포테이너에 도메인을 할당하시려면 DNS설정이 필요합니다.

  • (시놀로지 DDNS를 사용하신다면 이글을 참고 하세요)

1. Container Manager 준비하기

우선 Container Manager(구, Docker)가 설치되어있어야 합니다.
패키지 센터에서 쉽게 찾으실 수 있습니다.

2. 사용자 지정스크립트로 폴더 생성하기

제어판 - 작업 스케줄러를 클릭합니다.

순서대로 1.작업스케줄러 - 2.생성 - 3.트리거된 작업 - 4.사용자 정의 스크립트를 클릭해 줍니다.

위와 같은 창이 뜨면 하나씩 입력합니다.

  1. 작업에는 적당한 이름을 입력합니다. (저는 Portainer_install)로 하겠습니다.

  2. 사용자에는 root를 선택합니다.

  3. 한 번만 실행할 것이기에 활성화됨은 체크 해제합니다.

  4. 작업설정을 클릭하면 오른쪽 화면과 같이 나옵니다.

  5. 사용자 정의 스크립트에 아래의 스크립트를 사진과 같이 붙여 넣습니다.

  6. 이제 확인을 누릅니다.

Terminal window
mkdir /volume1/docker/portainer

루트 권한으로 실행하므로, 시놀로지에서 알림을 띄웁니다. 비밀번호를 입력합니다.

1.portainer_install행을 선택하고
2.실행을 누릅니다.
(그 결과로, /volume1/docker/portainer/의 경로에 폴더가 생성됩니다.)

다시 한 번, 생성 - 트리거된 작업 - 사용자 정의 스크립트를 클릭합니다.

이번에도 사용자 정의 스크립트를 입력할 겁니다. 천천히 해보겠습니다.

  1. 작업에는 역시 적당한 이름을 입력해 줍니다. (저는 portainer_install2)로 하겠습니다.

  2. 사용자는 root를 선택합니다.

  3. 이번 스크립트도 한 번만 실행할 것이므로, 활성화됨은 체크 해제합니다.

  4. 작업설정을 클릭하면, 오른쪽 화면과 같이 나옵니다.

  5. 사용자 정의 스크립트에 아래의 스크립트를 붙여 넣습니다.

  6. 이제 확인을 클릭합니다.

Terminal window
docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v /volume1/docker/portainer:/data portainer/portainer-ce

마찬가지로 root권한을 사용하므로, 시놀로지에서 알림을 띄웁니다. 비밀번호를 입력합니다.

역시 이번에도, portainer_install2 행을 클릭하고, 실행 - 확인을 순차적으로 클릭합니다.

이제 도커 허브에서 포테이너의 이미지가 다운로드되고 실행되고 있을 것입니다. 그 동안에 우리는 역방향 프록시(리버스 프록시), 웹소켓 등을 설정하겠습니다.

웹소켓은 클라이언트와 서버 사이에 지속적인 완전 양방향 연결 스트림을 만들어 주는 기술입니다.
도커의 경우, 많은 상황에서 웹소켓이 필요합니다.

3. 리버스 프록시웹소켓 설정하기.

로그인 포털 - 고급 - 역방향 프록시 를 클릭하고, 생성을 클릭합니다.

이번에도 천천히 하나씩 같이 해보겠습니다.

  1. 역방향 프록시 이름에는 적당한 이름을 입력합니다 (저는 portainer로 하겠습니다.)

  2. 소스의 프로토콜은 외부에서 접속하게될 프로토콜이므로, HTTPS를 선택합니다.
    호스트 이름은 시놀로지의 DDNS를 이용하시는 경우 "portainer.[나의아이디].synology.me"가 될 것입니다.
    포트는 443을 입력해 줍니다.

  3. HSTS 활성화를 체크합니다.

  4. 대상의 프로토콜은 내부망에 있으므로, HTTP로 하겠습니다.
    호스트 이름은 localhost를 입력합니다.
    포트는 9000을 입력합니다.

  5. 사용자 지정 머리글을 클릭하면 아래와 같이 화면이 바뀝니다.

  1. 생성을 클릭하시고,

  2. WebSocket을 클릭하시면 아래의 사진처럼 화면이 바뀝니다.

화면 확인 하셨으면 저장을 눌러 마무리합니다.

4. Portainer의 Web페이지 접속하기

  • portainer.[나의아이디].synology.me 등으로 접속하시면 아래의 화면을 볼 수 있습니다.

Username에는 원하시는 아이디를 입력하시면 됩니다.
Password에는 12자리 이상의 비밀번호를 입력하시면 됩니다.
체크박스는 익명통계전송을 위한 동의 입니다. 원하시는대로 하시면 됩니다.
Create user 버튼을 클릭해서 계속 진행합니다.

진행 하시면, 위와 같은 화면이 나오는데 Get Started를 클릭합니다.

그러면 다시 이런 화면이 나올겁니다.
오른쪽 끝에 연필 모양 클릭해 주세요

Public IP에 Public IP지만 자신의 NAS 내부망의 IP를 입력해 줍니다.
저는 192.168.0.200이라 이걸 입력했습니다.
Update environment를 눌러줍니다.

포테이너(Portainer)설치가 완료되었습니다. 이제 명령줄 없이 웹에서 바로 도커 이미지를 실행하실 수 있습니다.

수고 많으셨습니다. 감사합니다.


Askfront.com (에스크프론트)

초보자도 편하게 질문할 수 있는 자유로운 포럼을 준비했어요! 💬
에스크프론트에서는 NavyStack 가이드뿐만 아니라, 궁금한 모든 질문을 환영합니다. 😊
검색해도 원하는 답을 찾지 못해 답답했던 경험 있으시죠?
🔍 그럴 땐 부담 없이 질문해 주세요!
함께 이야기하며 답을 찾아갈 수 있을 거예요. 🤝
제가 직접 답변드릴 수 있다면 언제든 도와드릴게요. 감사합니다! 🙏