Docker Container 외부 접속

haerim·2024년 3월 23일

공부를 합시다

목록 보기
4/7

공부를 하던 중 도커 엔진을 이용해 도커 이미지 중 httpd를 run 시키고, 실행된 도커 컨테이너가 IP를 할당 받은 것을 확인했습니다.

제 생각에는 172.17.0.4 라는 IP를 할당 받았으니 브라우저로 접속이 가능하지 않은가? (실제로 공부 중 강사님은 쉽게 접근 하셨다) 해서 브라우저로 접근했는데 나는 접근이 되지 않았습니다.

그래서 좀 찾아봤더니 172.17.0.4는 컨테이너 내부에서 사용되는 IP 주소이며, 기본적으로 외부 네트워크에서 접근할 수 없다고 합니다. 이 주소는 Docker 브리지 네트워크에서 사용되는 내부 IP 주소라 그런다는군요...

즉 호스트 머신이 Docker 컨테이너 내부의 서비스에 접근할 수 없어서 컨테이너를 호스트 머신의 포트에 바인딩해야 한다는 의미였고, 바인딩을 해야 호스트 머신의 IP 주소와 포트를 통해 해당 컨테이너의 서비스에 접근할 수 있다는 것이었습니다.

제가 바인딩한 명령어는 아래와 같습니다.

docker run -p 8080:80 httpd

이 명령어는 호스트 머신의 8080 포트를 컨테이너의 80 포트에 바인딩한다는 의미입니다.

이렇게 바인딩을 시키면 이제 http://localhost:8080 로 접근하거나 http://127.0.0.1:8080 로 접근이 가능해집니다.


9000번 포트가 확실히 놀고 있을 것 같아서 9000번 포트에 바인딩 시키고 접속하자 아주 잘 뜨는 걸 확인했습니다.


터미널 상에서도 통신이 되고 있는 게 보입니다.

느낀 점

개인적으로는 강사님이 어떻게 이런 바인딩 과정 없이 바로 172 대역대에 접근하셨는지 조금 궁금합니다. ㅠ_ㅠ (뭔가 더 설정을 하셨을까?)

리눅스 환경이신 거 같고 여러모로 아마 설정이 조금 다르게 되어 있지 않을까 싶습니다만 어쨌든 도커 이미지가 실행이 되고, 외부 접속이 가능한 것까지 확인을 했으니 겸사겸사 잘 됐다 생각합니다.

profile
멋진 프론트엔드 개발자가 되고 싶은

0개의 댓글