Development/Docker

[Docker] tomcat/nginx pull, 포트 포워딩하기, 데몬으로 실행

juyeong 2023. 3. 26. 00:59
반응형

 

우선 도커허브에서 톰캣을 풀 받고 실행하자

 

그럼 localhost:8080로 연결했을 때 실패한다. 왜냐면 

브라우저가 request 날린 곳은 기존 host OS이지 도커 컨테이너가 아니다.

그럼 어떻게 하냐면

Browser -> host OS로 요청하면

host OS는 container로 redirect 시켜줘야 한다. 그걸 포트포워딩이라 한다. 

 

포트포워딩은 어떻게 하냐면

-d : 데몬으로 실행, 즉 백그라운드에서 계속 돌게 한다. 

docker pull httpd: 아파치 이미지로 컨테이너 생성을 위해 pull

docker images : 이미지 확인

 

 

ps 로 프로세스 확인했을 때 톰캣이 돌고있다면 꺼주자 (stop _  (_에는 container ID 입력)) 

stop 시키고 다시 ps 로 stopped 되었는지 확인하기

 

 

docker run -d -p 8080:80 httpd : 데몬으로 실행(-d)하며 여기에 포트포워딩(-p) 해주자. 8080으로 요청 들어오면 80 포트로 리다이렉트 시킨다.

0.0.0.0:8080->80 : docker ps 명령어로 확인하면 ports가 리다이렉트 된 것 확인할 수 있다. 브라우저 열고 요청 보내면, 잘 연결된 것 확인완료

 

docker run -d -p 8081:80 nginx : 위에 8080을 httpd에서 사용하니까 8081이라고 정했다. 8081로 들어오면 80으로 리다이렉트. 마찬가지로 아래와 같이 나오면 성공이다.

 

 

 

이 때  팁이 있는데, docker pull 한 다음에 포트포워딩 하지말고 docker pull -d -p.. (image name) 맨 뒤에 pull 받고자하는 이미지 네임을 넣으면 알아서 latest tag를 찾아 pull 받아준다.. pull & run을 동시에 할 수 있으니 편하다. 똑똑이! 

 

 

 

너무 재밌다 .... 이건 운영체제를 동시에 3개 쓰는 정도의 혁신같다..  

 

 

 

반응형