공부/Docker

Docker 컨테이너 생성, 실행

Stair 2026. 2. 3. 12:21
반응형

컨테이너 생성

이미지를 바탕으로 컨테이너를 생성한다. 이 때는 컨테이너를 실행시키지는 않는다.

(컨테이너를 실행하지 않고 생성만 하는 경우는 별로 없기 때문에 이 명령어는 잘 사용되지 않는다.)

 

 

 

docker ps -a : 모든 컨테이너 조회

 

 

 

docker start로 정지되어 있는 컨테이너를 실행시킨다.

 

 

 

docker ps로 실행중인 컨테이너를 조회한다.

 

 

 

현업에서는 컨테이너를 생성하고, 실행하는 동작을 분리해서 하진 않고, 보통 run이라는 명령어로 한번에 퉁쳐서 생성하고 실행하게 된다.(run : 컨테이너 생성 + 실행)

그냥 run을 하게 되면 문제가 하나 있다. 실행한 작업이 포그라운드에서 동작하는 문제이다.

    - foreground : 내가 실행시킨 프로그램의 내용이 화면에서 실행되고 출력되는 상태

    - background : 내가 실행시킨 프로그램이 컴퓨터 내부적으로 실행되는 상태

 

포그라운드에서 동작하기 때문에 파워쉘 창에서 다른 명령어를 입력할 수 없게 된다.

 

 

 

백그라운드에서 작업을 실행시키려면 -d를 붙혀주면 된다.

이 특성을 이용하여 다른 명령어를 추가로 입력할 수 있고, 새로운 프로그램을 조작할 수도 있다.

 

 

 

컨테이너에 이름을 붙혀서 생성 및 실행도 가능하다.

 

#docker run -d --name [컨테이너 이름] 이미지명[:태그명]을 사용하여 컨테이너이 이름 붙히기가 가능하다.

 

 

 

 

 

docker에서 컨테이너를 생성하여 nginx를 80번 포트로 실행하면, 크롬 웹브라우저에서 localhost:80을 입력하여 연결을 할 수 있을 것 같지만 실상은 그렇지 않다.

docker에 올라간 컨테이너는 "독립된 개별 컴퓨터"라고 생각하면 된다. 따라서 호스트 컴퓨터에서 한번 더 연결을 해주어야 한다.(포트 포워딩)

 

 

 

  • -d (Detached): 컨테이너를 백그라운드에서 실행한다.
  • -p 4000:80 (Publish): 이 부분이 핵심인 포트 포워딩 설정.
    • 4000 (Host Port): 여러분의 실제 컴퓨터(호스트)에서 사용할 문 번호
    • 80 (Container Port): Nginx 컨테이너 내부에서 웹 서버가 기본적으로 기다리고 있는 문 번호
  • nginx: 사용할 이미지 이름입니다.

 

 

localhost:4000 으로 접근 -> docker 엔진이 호스트의 4000번으로 들어온 신호를 낚아 챔 ->

이 신호를 컨테이너 내부의 80번 포트로 넘김 -> 컨테이너 안에 nginx가 신호를 받아 페이지를 출력

반응형

'공부 > Docker' 카테고리의 다른 글

컨테이너 조회, 중지, 삭제  (0) 2026.02.04
Docker Image 관련 CLI  (0) 2026.01.23
도커 흐름 파악하기  (0) 2026.01.22
Docker 설치하기  (0) 2026.01.20
Docker 시작하기  (0) 2026.01.19