Synology NAS 로 Docker 위에서 웹 서버 띄우기 ..
안녕하세요
검색하고 검색하다 몇개월째 고생하고있어서 해결이안되어 여기까지 와서 질문합니다....
현재 시놀로지 NAS에 Docker를 패키지 관리자로 설치한뒤
Ubuntu 를 이미지로 내려받아 Docker 위에 올려서 Ubuntu 환경에서 Nest JS API 서버를 올리려고합니다.
외부 엑세스는 ssh 로 접근기준 DSM 에 접근할떄는 ssh 포트번호 1029 로 세팅해서 접속이되고
Ubuntu로는 10001 번 포트로 ssh 접근을 가능하게 하였습니다.
여기서 , Ubuntu 에서 Nest JS API 서버를 8080으로 코드상에서 세팅한뒤 (. ..... await app.listen(8080); )
Ubuntu 내에서 웹서버 올리기에 성공을 했는데요
그렇게되면 이 웹서버를 페이지로 띄우려면 어떤 포트를 써서 들어가야하나요 ???
포트 맵핑? SSL?? 검색 여러가지해봤는데 어떻게 검색해야할지 어떤정보를 찾아야할지 막연하여 질문올립니다.
감사합니다.
포트 정하도록 되어있지않나요?
호스트의 18080 을 도커의 8080 으로
이런식으로 매핑했습니다
DSM에서 도커를 생성할때
아래와 같은 화면에서 포트를 설정할 수 있습니다.
아래와 같이 세팅이 되었을때
PC -> NAS:18080 으로 접근하면
PC -> 도커컨테이너:8080 으로 접근하는 것과 똑같아집니다.
http://121.167.40.172:10001/ 이렇게 접근하니
Invalid SSH identification string. 이라고 뜹니다....
저게아니라 우분투에 돌고있는 nestjs 웹서버를 보여줘야할텐데
10002:8080 으로하시면 되실듯합니다
답변 감사합니다! 포트맵핑을 어디서 확인할수가있나요???
이미지 이용해서 도커에 새로올릴떄만 세팅할수 있는 그건가요!??!
말씀하신 내용만 보면 1029는 DSM ssh, 10001은 우분투 ssh 포트니까 우분투 웹포트는 열린게 없습니다. 달소님 말씀대로 우분투의 8080포트를 10002 포트 정도로 추가 매핑하시고 공유기에서 포트포워딩 걸어주시면 됩니다. 포트 매핑은 여러개 할 수 있습니다.
다만 도커는 실행중인 컨테이너를 그대로 두고 포트만 추가로 오픈할 수 없으므로… dsm ssh로 접속하셔서 docker commit으로 현재 컨테이너를 그대로 이미지로 만든 다음, 해당 이미지로 컨테이너를 다시 만들면서 기존 10001:22외에 추가로 10002:8080 포트 매핑하시면 됩니다.
1. 포트 맵핑을 추가로 못하니 기존 올라가있는이미지 내리고 새로 이미지 올릴때 포트맵핑을 2개를 해주라는 말씀같은데, 기존 이미지 커밋하고 기존이미지 삭제후 풀받아서 덮어씌울수가있나요??
2. 지금 http://121.167.40.172:5000 여기 포트포워딩이 되어있는데 동일한 도메인에 포트만 바꿔서 혹은 /api 경로만 붙여서 주고싶은데도 포트포워딩을 또해야하나요??
2. 포트포워딩은 정의한 포트에만 작동하므로 포트만 바꾸는 경우 신규로 포트포워딩을 정의해주셔야 합니다. 121.167.40.172:5000/api 형태로 sub path를 쓰는 부분은.. 저는 잘 모르겠습니다;; 예전에는 dsm에서 쉽게 설정했었던 것 같은데 제가 요즘은 그냥 역방향 프록시로 호스트를 부여해서 사용하다 보니 방법을 까먹었는지 DSM에서 설정이 변경된건지 모르겠네요...
위와 같이 포트 8080에 10002번을 포트맵핑 시켰습니다.
그리고 방화벽 프로파일에서 8080도 추가해주었습니다.
도커 포트 맵핑도 이렇게 해주었습니다.
cmt alert