본문 바로가기
개발정리 (docker)

[docker] 컨테이너 다루기 필수 명령어 모음

by 할리갈리0 2025. 9. 24.

Docker는 이미지를 기반으로 컨테이너를 실행하고, 컨테이너 안에서 애플리케이션을 구동합니다.
하지만 실제 개발·운영 환경에서는 단순히 실행만 하는 것이 아니라,

상태 확인·로그 조회·접속·종료·삭제 같은 다양한 조작이 필요합니다.
이번 글에서는 docker run, docker ps, docker logs, docker exec, docker stop, docker rm

필수 명령어와 함께 자주 쓰이는 옵션을 정리했습니다.

 

1. 컨테이너 실행: docker run

가장 기본적인 명령어입니다. 이미지를 컨테이너로 띄울 때 사용합니다.

docker run -d -p 8080:80 nginx
  • -d : 백그라운드(detached) 모드 실행 → 터미널을 점유하지 않음
  • -p : 로컬 포트와 컨테이너 포트를 연결 (호스트:컨테이너)
  • nginx : 실행할 이미지 이름

위 명령어는 nginx 웹서버를 컨테이너에서 실행하고, 로컬 8080 포트를 컨테이너 80번 포트와 연결합니다.

브라우저에서 http://localhost:8080 접속 시 nginx 기본 페이지가 출력됩니다.

 

2. 실행 중인 컨테이너 확인: docker ps

현재 실행 중인 컨테이너 목록을 확인합니다.

docker ps

출력 예시는 다음과 같습니다:

CONTAINER ID   IMAGE     COMMAND                  STATUS         PORTS                  NAMES
a1b2c3d4e5f6   nginx     "/docker-entrypoint.…"  Up 2 minutes   0.0.0.0:8080->80/tcp   nginx-test
  • CONTAINER ID : 컨테이너 고유 ID
  • IMAGE : 실행된 이미지 이름
  • PORTS : 연결된 포트 정보
  • NAMES : 컨테이너 이름 (자동 생성되거나 --name 옵션으로 지정 가능)

모든 컨테이너(중지 포함)를 보려면 docker ps -a를 사용합니다.

 

3. 로그 확인: docker logs

컨테이너에서 실행된 애플리케이션의 로그를 확인할 수 있습니다.
서버 디버깅 시, 로그 확인은 필수입니다.

docker logs nginx-test
  • 애플리케이션 출력(stdout, stderr)을 그대로 보여줍니다.
  • 실시간 로그를 보고 싶으면 -f 옵션을 붙입니다.
docker logs -f nginx-test

 

4. 컨테이너 내부 접속: docker exec

실행 중인 컨테이너에 직접 들어가 명령어를 실행할 수 있습니다.
컨테이너 안의 파일 구조를 확인하거나 환경 변수를 점검할 때 유용합니다.

docker exec -it nginx-test bash
  • -i : 상호작용 모드 (interactive)
  • -t : 터미널 할당 (tty)
  • bash : 실행할 셸

컨테이너 내부에 bash가 없을 경우 sh를 사용할 수 있습니다.

docker exec -it nginx-test sh

 

5. 컨테이너 종료 및 삭제: docker stop, docker rm

더 이상 필요 없는 컨테이너는 종료하고 삭제할 수 있습니다.
운영 환경에서는 컨테이너 이름을 명확히 정해두는 것이 관리에 도움이 됩니다.

docker stop nginx-test
docker rm nginx-test
  • docker stop : 실행 중인 컨테이너를 종료
  • docker rm : 종료된 컨테이너를 삭제
  • 실행 중인 컨테이너를 강제 삭제하려면 docker rm -f 컨테이너이름을 사용합니다.

 

6. 자주 쓰는 옵션 요약

  • -d : 백그라운드 모드
  • -p 호스트:컨테이너 : 포트 매핑
  • -it : 터미널 접속
  • --name : 컨테이너 이름 지정
  • --rm : 실행 종료 시 자동 삭제
docker run -d -p 3000:3000 --name myapp --rm node:20 node server.js

→ 실행 중에는 myapp이라는 이름으로 접근할 수 있고, 종료되면 컨테이너가 자동 삭제됩니다.

 

 

 

컨테이너를 다루는 데 필요한 명령어는 몇 가지밖에 되지 않지만, 활용도는 매우 높습니다.

  • docker run으로 실행하고
  • docker ps로 상태를 확인하며
  • docker logs로 동작을 점검하고
  • docker exec으로 내부에 접속해 문제를 해결하고
  • 필요할 때 docker stopdocker rm으로 정리

이 기본 흐름만 익혀도 컨테이너 운영의 80%는 해결할 수 있습니다.
나머지는 네트워크, 볼륨, 오케스트레이션(Kubernetes) 같은 고급 기능을 차차 익히면 됩니다.

반응형