Header Banner
Kakao Logo

TECH.KAKAO.GG

기술 자료/Docker/Docker/Docker-Compose 주요 명령어 정리

Docker/Docker-Compose 주요 명령어 정리

Docker16일 전

컨테이너 시작 및 중지 (Container Lifecycle)

서비스의 생명주기를 관리하는 가장 기본적인 명령어들입니다.

아래 빌드 명령어를 별도로 작성했지만, docker-compose up -d --build 명령어 입력 시 이미지를 새로 빌드(build)한 후에 컨테이너를 시작(up)이 가능합니다.

 

명령어

설명

주요 사용 사례

docker-compose up -d

docker-compose.yml 파일에 정의된 모든 서비스를 백그라운드(-d)에서 생성하고 시작

  • 최초로 프로젝트를 실행할 때

  • 코드 변경 없이 단순히 중지했던 컨테이너를 다시 시작할 때

docker-compose down

up으로 생성된 컨테이너와 네트워크 등 모든 리소스를 중지하고 제거

  • 서비스를 완전히 종료하고 정리할 때

  • 새로운 설정을 적용하기 위해 기존 환경을 깨끗이 지우고 싶을 때

docker-compose down -v

down의 기본 기능에 더해, 데이터베이스 데이터 등이 저장되는 볼륨(volume)까지 영구적으로 삭제

  • 개발 환경에서 데이터를 포함한 모든 것을 초기화하고 싶을 때

  • 주의: 운영 환경에서는 데이터 유실 위험, 절대 사용하면 안 됩니다.

docker-compose restart <서비스이름>

특정 서비스(컨테이너)만 재시작

  • Nginx 설정 파일 등 코드 빌드가 필요 없는 설정을 수정한 후 해당 서비스만 가볍게 재시작하고 싶을 때

 

로그 및 상태 확인 (Monitoring & Status)

실행 중인 컨테이너의 상태를 확인하고 문제를 진단하기 위한 필수 명령어들입니다.

 

명령어

설명

주요 사용 사례

docker ps

현재 실행 중인 모든 Docker 컨테이너의 목록, ID, 상태, 포트 정보 등을 보여줍니다.

  • 컨테이너가 정상적으로 실행되고 있는지 확인할 때

  • 외부로 노출된 포트 번호를 확인할 때

docker-compose logs <서비스이름>

특정 서비스 컨테이너가 생성된 이후부터 현재까지의 모든 로그를 출력합니다.

  • 에러 발생 후 원인을 파악하기 위해 전체적인 로그 기록을 검토할 때

docker-compose logs -f <서비스이름>

특정 서비스의 로그를 실시간(-f, follow)으로 계속해서 보여줍니다.

  • API 요청 등 특정 액션을 취했을 때 서버의 반응을 실시간으로 확인하며 디버깅할 때

 

이미지 및 빌드 관리 (Image & Build)

소스 코드 변경사항을 컨테이너에 적용할 때 사용하는 핵심 명령어입니다. 

 

명령어

설명

주요 사용 사례

docker-compose up -d --build

컨테이너를 시작하기 전, Docker 이미지를 강제로 새로 빌드(build)하여 최신 코드를 반영

  • Java 코드, application.yml, package.json소스 코드를 수정한 후 변경사항을 컨테이너에 적용하고 싶을 때

  • 가장 중요한 명령어로, 코드 수정 후에는 반드시 사용해야 합니다.

docker-compose build <서비스이름>

특정 서비스의 이미지만 새로 빌드합니다. 컨테이너를 시작하지는 않습니다.

  • up 하기 전에 코드 빌드가 성공적으로 완료되는지 미리 확인할 때

 

컨테이너 내부 명령어 실행 (Execution & Debugging)

실행 중인 컨테이너 내부에 직접 들어가거나 명령을 내려 환경을 진단합니다.

 

명령어

설명

주요 사용 사례

docker-compose exec <서비스이름> <명령어>

실행 중인 컨테이너 내부에서 원하는 명령어를 실행합니다.

  • Nginx 설정 문법 검사: docker-compose exec nginx nginx -t

  • 컨테이너 내 환경변수 확인: docker-compose exec app printenv

docker-compose exec <서비스이름> /bin/sh

해당 컨테이너의 셸(shell) 환경으로 접속합니다. (배포용 이미지에 따라 /bin/bash일 수도 있습니다.)

  • 컨테이너 내부 파일 구조를 직접 확인하거나 여러 명령어를 연속적으로 실행하며 심층 디버깅을 할 때

 

서버 운영 시 up -d --build(코드 변경 시), down(정리), logs -f(실시간 확인) 명령어는 가장 빈번하게 사용됩니다. 3개는 기억하고 있는게 좋습니다.

키워드

도커 컴포즈컨테이너 관리서비스 배포 및 디버깅