Docker 포트 맵핑: 웹 애플리케이션을 위한 네트워크 설정

  1. 웹 애플리케이션 실행

먼저, 웹 애플리케이션용 Docker 이미지를 다운로드합니다:

$ docker pull nginx

다운로드된 이미지를 사용해 컨테이너를 실행합니다:

$ docker run -d --name webapp -P nginx

옵션 설명:

  • -d: 백그라운드에서 실행
  • -P: 컨테이너의 내부 포트를 主机의 랜덤 포트로 맵핑
  1. 웹 애플리케이션 컨테이너 확인

가장 최근에 실행된 컨테이너를 확인합니다:

$ docker ps -l

출력 예:

CONTAINER ID   IMAGE    COMMAND          CREATED          STATUS              PORTS               NAMES
abc12345678    nginx    "nginx -g 'daemon" 2 minutes ago    Up 2 minutes       0.0.0.0:32768->80/tcp  webapp

컨테이너의 기본 웹페이지를 확인할 수 있습니다. -p 옵션을 사용해 맞춤형 포트를 할당할 수 있습니다:

$ docker run -d --name webapp2 -p 8080:80 nginx

컨테이너 상태를 확인합니다:

$ docker ps -l

출력 예:

CONTAINER ID   IMAGE    COMMAND          CREATED          STATUS              PORTS               NAMES
def56789012    nginx    "nginx -g 'daemon" 2 minutes ago    Up 2 minutes       0.0.0.0:8080->80/tcp webapp2
  1. 네트워크 포트 확인 방법

컨테이너의 포트 맵핑을 확인할 수 있는 방법입니다:

$ docker port webapp2

출력 예:

80/tcp -> 0.0.0.0:8080
  1. 컨테이너 내부 로그 확인

컨테이너의 로그를 실시간으로 확인합니다:

$ docker logs -f webapp2

출력 예:

123.45.67.89 - - [20/Dec/2018:09:10:33] "GET / HTTP/1.1" 200 612
  1. 컨테이너 내부 프로세스 확인

컨테이너 내부에서 실행 중인 프로세스를 확인합니다:

$ docker top webapp2

출력 예:

UID          PID    PPID          C    STIME           TTY    TIME     CMD
root         1234    1             0    04:10           ?      00:00:00  nginx -g 'daemon off;'
  1. 컨테이너 세부 정보 확인

컨테이너의 상세 정보를 JSON 형식으로 확인합니다:

$ docker inspect webapp2

출력 예:

[
    {
        "Id": "def56789012",
        "Created": "2018-12-20T09:10:33.039244936Z",
        "Path": "nginx",
        "Args": [
            "-g",
            "daemon off;"
        ],
        "State": {
            "Status": "running",
            "Running": true,
            "StartedAt": "2018-12-20T09:10:33.400703462Z"
        }
    }
]
  1. 컨테이너 삭제

컨테이너를 삭제하기 전에 먼저 중지합니다:

$ docker stop webapp2

컨테이너를 삭제합니다:

$ docker rm webapp2

태그: docker container networking port mapping

5월 28일 15:07에 게시됨