시작하기 전에
이번엔 Docker를 어떻게 사용해야 하는지 정리해보고자 한다. 출처는 저번과 동일하다.
개념은 아래 링크에서 확인할 수 있다 : Docker란?
핵심
- 컨테이너의 포트(CONTAINER_PORT)를 호스트의 포트(HOST_PORT)에 노출하여, 호스트의 특정 포트(HOST_PORT)를 통해 컨테이너 내부의 서비스(예: 웹 서버)를 접근할 수 있게 만들 수 있다.
Publishing Ports
포트를 활용하면 각 component의 네트워크적 독립성을 부여할 수 있다. docker run과 같이 -p(--publish) 태그를 사용해 포트를 지정해줄 수 있다. 형식은 아래와 같다.
docker run -d -p HOST_PORT:CONTAINER_PORT my_image_name
- HOST_PORT
호스트의 포트로, 우리가 이 포트넘버를 통해 컨테이너 내부의 서비스에 접근할 수 있다. - CONTAINER_PORT
컨테이너의 포트로, 컨테이너에서 어떤 포트의 서비스를 받아올 건지를 결정한다. - image_name
실행하고 싶은 이미지의 이름 또는 nginx 같은 게 들어갈 수 있다.
예를 들면, 아래와 같이 되겠다.
docker run -d -p 8080:80 nginx
컨테이너의 포트 80에 해당하는 서비스 nginx를 호스트에서 포트 8080으로 접근할 수 있다.
Publishing to Ephemeral Ports
호스트 머신에서 어떤 포트로 발행할지 설정해주기 귀찮다면, 일시적인 포트를 설정할 수 있다.
docker run -p 80 nginx
컨테이너의 포트 80의 서비스 nginx가 호스트의 일시적인 포트로 연결된다.
실행 중인 컨테이너 확인
또한 실행 중인 컨테이너들의 정보를 확인할 수도 있다.
docker ps
이 명령어를 실행하면, 컨테이너의 정보와 함께 포트 정보가 나온다.
예를 들면, 위의 경우 컨테이너 안의 포트 80의 서비스가 호스트 머신의 54772 포트로 발행된 것이다.
Publishing All Ports
컨테이너의 모든 서비스를 각각 임의의 호스트의 포트로 연결해서 발행할 수도 있다.
docker run -P nginx
'개발 > 백엔드' 카테고리의 다른 글
[백엔드] Docker (2) - 이미지 빌드 (0) | 2024.09.13 |
---|---|
[백엔드] Docker (1) - Docker란? (0) | 2024.09.11 |
[백엔드] 개발 도서관을 만들어보자 (0) | 2024.02.03 |