Docker 실습4: httpd 애플리케이션을 포트 매핑 실행하기

손지민·2024년 5월 17일

Docker

목록 보기
7/9

개요

컨테이너는 여러 개 실행할 수 있다. 호스트 포트와 컨테이너 포트를 연결해주는 것을 포트 포워딩(port forwarding) 이라고 한다. 포트 포워딩을 통해 호스트 머신의 특정 포트로 들어오는 네트워크 트래픽을 컨테이너의 특정 포트로 전달할 수 있다. 이를 통해 외부에서 컨테이너 내에서 실행 중인 서비스에 접근할 수 있게 된다.

이번 글에서는 직접 생성한 httpd 애플리케이션 실행해봅니다.


개념

docker run -p 8000:80 httdpd

docker run -p 8000:80 httpd 명령어는 Docker를 사용하여 httpd 이미지를 기반으로 컨테이너를 실행하는 명령입니다. 이 명령어의 각 부분을 설명하면 다음과 같습니다:

  • docker run: 새로운 컨테이너를 생성하고 실행하는 Docker 명령어입니다.
  • -p 8000:80: 호스트와 컨테이너 간의 포트를 매핑합니다. 여기서 8000:80은 호스트의 포트 8000을 컨테이너의 포트 80에 연결한다는 의미입니다.
    • 8000: 호스트 머신에서 사용할 포트 번호입니다.
    • 80: 컨테이너 내부에서 사용할 포트 번호입니다.
  • 그럼 포트 매핑을 명시적으로 설정하지 않는다면?
    docker run httpd 명령어는 포트 매핑을 지정하지 않기 때문에, 기본적으로 외부에서 접근할 수 있는 포트를 호스트와 연결하지 않습니다. 그러나 컨테이너 내부에서는 Apache HTTP Server가 기본적으로 포트 80에서 실행됩니다.
    이 경우 컨테이너 내부에서는 Apache 서버가 실행 중이지만, 외부(호스트 머신)에서는 해당 서버에 접근할 수 없습니다. 외부에서 접근하려면 포트 매핑을 명시적으로 설정해주어야 합니다.

실습

방법1. Docker desktop 사용

  1. run 클릭
  2. Optional settings - Host port 8080 설정
    이렇게 설정하면 localhost:8080 으로 들어오면 80번 포트로 port fowarding 하겠다는 의미입니다.

방법2. CLI 사용

  1. docker run --name ws3 -p 8081:80 httpd 명령어: 이름 ws3, 8081:80 포트 매핑
    -p 옵션 사용. --publish 의 줄임말
  2. docker ps 명령어: 컨테이너 실행 확인
  3. docker desktop 에서 만든거 http://localhost:8080/index.html 접속하여 동작 확인
  4. docker desktop 에서 해당 컨테이너 로그 확인 가능
  5. 커맨드라인에서 만든거 http://localhost:8081/index.html 접속하여 동작 확인
  6. 새로고침 로그 확인

직접 생성한 httpd 애플리케이션 실행 완료!!

이제 index.html 을 편집해서 나의 웹앱을 만들 수 있어야한다.


출처

profile
Developer

0개의 댓글