| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
- 자바
- 쿼리
- 운전면허
- 스프링부트
- c#
- 코테
- level4
- 일반화
- 프로그래머스
- 닫기버튼
- 보통2종
- JPA
- 씨샵
- 백준
- Python
- MySQL
- WSL
- 1931번
- level3
- springboot
- 코딩테스트
- MVVM
- delegate
- SQL
- programmers
- Spring Boot
- WPF
- 3일컷
- Java
- level2
- Today
- Total
욱꾸미의 주꾸미 발
[Docker/WSL] 외부에서 접속하기 본문
안녕하세요. 또랜만이네요...
맨날 글을 주기적으로 써야지 생각은 하지만... 현생에 치여 살다보니 자주 작성하지 못 하네요.
그래도 이렇게 나마 생존신고를 하며 살아가고 있습니다!
다들 무더운 여름에 아프신곳 없이 잘 이겨내시길 바랍니다.
오늘은 WSL과 Docker관련 글을 작성할 예정입니다.
아시는 분은 아시겠지만... Docker Desktop은 이제 기업에서 유료화가 됐기때문에 저는 애초에 WSL환경에 Docker를 구축해 사용하고 있습니다.
그러면 제가 오늘 글을 통해 궁극적으로 만들고자 하는 부분을 표현해 보겠습니다.
개요
개요는 아래와 같습니다.
서버개발자인 욱꾸미는 정식 개발서버가 나오기전에 로컬환경에 간단한 개발환경을 구성하고자 합니다.
서버는 Windows환경 > WSL > Devcontainer기반의 NodeJS입니다.
서버를 구축 한 후 127.0.0.1(localhost)을 통한 접속은 정상입니다.
그.러.나! 해당 서버에 팀원은 접속이 불가능합니다. 이상합니다. 같은 네트워크를 사용할텐데 말이죠~?
오늘은 해당 내용에 대한 글을 작성해 보겠습니다.
최종목표
최종 목표는 간단합니다.
즉 외부에서 제가 devcontainer로 구축한 서버에 접속하는것!

이렇게 말이죠!
(실제업무에서는 이렇게 사용하실 일이 없을겁니다. ㅠㅠ 저는 개발서버 발급이 늦어져 진행한 부분이니 참고 부탁드립니다.)
이제 시작하겠습니다.!
1. WSL내 Docker설치 및 Dev Container를 이용한 기본 서버 구성
먼저, WSL을 설치하고 WSL에 접속 後 Docker를 설치합니다.(해당 내용은 인터넷 검색을 통해 진행합니다. )
그리고 VS Code로 devcontainer를 설치 한 후 간단한 서버를 만들겠습니다.

간단한 코드를 작성 후 localhost를 기반으로 접속을 합니다.

네 잘 나옵니다. 여기서 만약 다른 PC, 동료의 PC로 접속하려면? 제 IP를 통해 접속해야합니다... 그럼 접속해 보도록 하죠
2. 외부에서 접속시 접속 불가

이런... 연결 할 수 없다고 나옵니다. ㅠㅠ 왜 그럴까요?
(확실하지 않은 내용이지만...) 현재 서버는 container 즉 WSL의 환경에서 구동되고 있습니다. 따라서 기준점이 PC환경과 다르게 되는것이죠. 현재는 127.0.0.1(local)과:WSL이 매핑 되어있다고 생각하시면 되겠습니다.
(그 증거로 저는 서버를 3000번 포트에서 구성했지만 Localhost로 접속시에는 56059포트를 사용합니다.)

3. 문제 해결
이번글의 핵심이죠... 이제 이걸 해결해 보겠습니다. 원리는 간단합니다. 이번에는 외부 <=> 127.0.0.1로 매핑해주면 됩니다!
매핑하는 명령어를 알려드리겠습니다.
명령어를 실행하기에 앞서...
1. Powershell `관리자 권한`!으로 실행
2. 명령어 적용
3. 테스트
netsh interface portproxy add v4tov4 listenport=<외부 접속 포트> listenaddress=<내 PC IP> connectport=<내부 접속 포트> connectaddress=127.0.0.1
입니다.
해당 명령어를 통해 매핑을 해주면 되겠습니다.
그럼 이제 명령어를 입력해 결과를 확인해 볼까요~?

뿅!!! 이렇게 잘 접속이 되는걸 볼 수 있습니다.
추가했다면 보안을 위해 사용하지 않는 리스트도 정리해야겠죠?
정리시에는
"netsh interface portproxy delete v4tov4 listenport=8080 listenaddress=<내 PC IP>"
를 입력해 리스트를 정리해 주시면 되겠습니다.
포트를 연다는건... 항상 조심하시길 바랍니다!
오늘의 글은 여기까지로 마무리하겠습니다... 오랜만의 글이다보니 두서도 없고... 난해하네요...
더운날씨가 어느덧 지나 선선해지고 있습니다.
저는 요즘 감기로 하루하루 고통받고 있습니다..😂😂
모두 감기조심하시고 행복한 하루 보내시길 바랍니다.
감사합니다.
'Docker' 카테고리의 다른 글
| [Docker] 호스트 머신의 DB와 Container 서버의 연결 (3) | 2024.10.26 |
|---|