[Docker] tomcat/nginx pull, 포트 포워딩하기, 데몬으로 실행
우선 도커허브에서 톰캣을 풀 받고 실행하자
그럼 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개 쓰는 정도의 혁신같다..