메뉴 닫기

🚀 Docker 명령어 정리 & 실무 활용 가이드

Docker는 현대 소프트웨어 배포에서 매우 중요한 역할을 하는 컨테이너 기술로, 개발부터 배포, 운영까지 통합적인 환경 제공이 가능합니다. Docker의 기본 구조와 용어를 이해하는 것부터 시작하여, 명령어 활용법, Dockerfile 작성 방법, 그리고 실무 환경에서 유용하게 사용할 수 있는 팁들까지 상세하게 소개합니다.


🔍 Docker 기본 구조와 용어

Docker는 컨테이너 기반의 경량 가상화 기술로, 애플리케이션의 환경을 격리하고 쉽게 배포할 수 있도록 돕습니다. 여기에 등장하는 주요 개념을 이해하면 Docker 활용이 훨씬 수월해집니다. 이미지(Image)는 애플리케이션과 환경 설정이 포함된 읽기 전용 템플릿입니다. 이를 기반으로 컨테이너(Container)라는 실행 인스턴스가 만들어지고, 각각 고유의 파일 시스템, 네트워크, 프로세스 공간을 가집니다. Dockerfile은 이미지를 빌드하기 위한 명령어들이 기록된 텍스트 파일이며, 레지스트리(Registry)는 이미지를 공유하거나 저장하는 곳으로 Docker Hub가 대표적입니다.


📦 Docker 명령어 정리와 활용법

1. 버전 및 시스템 정보

  • docker version: Docker의 버전과 상세 정보를 확인합니다. 개발환경에서 호환성 체크 시 유용합니다.
  • docker -v: 간단한 버전 정보 출력용입니다.
  • docker system info: 도커의 전체 시스템 상태를 상세하게 확인할 수 있으며, 디스크 사용량도 모니터링 가능합니다.
  • docker system df: 디스크 용량 관련 상세 정보 제공으로 용량 관리에 도움.

2. 이미지 관련 명령어

  • docker images: 등록된 전체 이미지를 리스트업합니다.
  • docker pull [이미지명]:[태그]: Docker Hub에서 원하는 이미지를 다운로드합니다. 예: docker pull ubuntu:20.04
  • docker rmi [이미지 ID 또는 이름]: 필요 없는 이미지를 삭제하여 저장 공간 확보.
  • docker search [이미지명]: Docker Hub 내 이미지 검색.

3. 컨테이너 관련 명령어

  • docker run [옵션] [이미지명] [명령어]: 컨테이너를 새로 생성하고 실행합니다. 예: docker run -it --name demo ubuntu:18.04 /bin/bash
  • docker ps: 현재 실행 중인 컨테이너 목록을 표시(기본값)
  • docker ps -a: 실행 중인 것 외에 종료된 컨테이너 포함 전체 리스트 확인
  • docker start [컨테이너ID 또는 이름]: 정지된 컨테이너 재실행
  • docker stop [컨테이너ID 또는 이름]: 컨테이너 종료
  • docker restart [컨테이너ID 또는 이름]: 컨테이너 재시작
  • docker rm [컨테이너ID 또는 이름]: 컨테이너 삭제, 여러 개 삭제 시 docker rm 컨테이너ID1 컨테이너ID2
  • docker logs [컨테이너ID 또는 이름]: 로그 수집 및 확인
  • docker logs -f [컨테이너 ID 또는 이름]: 실시간 로그 모니터링
  • docker inspect [컨테이너ID 또는 이름]: 상세 정보를 JSON 형식으로 확인
  • docker exec -it [컨테이너ID 또는 이름] /bin/bash: 실행 중인 컨테이너에 접속하는 명령어로, 인터랙티브 쉘이 가능합니다.
  • docker attach [컨테이너ID 또는 이름]: 실행 중인 컨테이너의 표준 입출력에 연결

4. 네트워크 및 볼륨 관리

  • docker network ls: 네트워크 목록 확인
  • docker network inspect [네트워크명]: 네트워크 상세 정보
  • docker network create [네트워크명]: 네트워크 생성
  • docker volume ls: 볼륨 리스트
  • docker volume create [볼륨명]: 볼륨 생성
  • docker volume inspect [볼륨명]: 상세 정보 확인

5. 이미지 빌드 및 업로드

  • docker build -t [이미지이름]:[태그] [Dockerfile 경로]: Dockerfile을 이용하여 커스텀 이미지 제작, 예: docker build -t myapp:1.0 .
  • docker push [이미지이름]:[태그]: 이미지 레지스트리로 업로드, 로그인 필요
  • docker tag [이미지ID] [새이름]:[태그]: 이미지를 새 이름/태그로 태깅

6. 기타 유용 명령어

  • docker login: 레지스트리 접속
  • docker system prune: 사용하지 않는 모든 도커 리소스 정리(백업 필요 시 주의)
  • docker cp [호스트경로] [컨테이너명]:[컨테이너 내 경로]: 호스트와 컨테이너 간 파일 복사
  • docker cp [컨테이너명]:[경로] [호스트경로]: 역방향 복사

📜 Dockerfile 핵심 명령어

Dockerfile은 이미지 빌드의 기본 설계도입니다. 대표 명령어는 다음과 같습니다:

  • FROM [이미지]: 베이스 이미지 지정
  • RUN [명령어]: 이미지 내부에서 명령어 실행
  • COPY/ADD [소스] [대상]: 호스트에서 컨테이너 내로 파일 복사
  • ENV [키]=[값]: 환경변수 설정
  • WORKDIR [경로]: 작업 디렉토리 변경
  • EXPOSE [포트]: 컨테이너 포트 노출
  • CMD / ENTRYPOINT: 컨테이너 시작 시 실행 명령어 지정

🎯 실무 활용 팁과 고급 전략

컨테이너 자동 재시작: docker run --restart=always [이미지] → 서버 재부팅 등에서도 안정적 운영 가능.

포트 매핑과 볼륨 활용: docker run -p 8080:80 -v /data:/app/data [이미지]로 외부와 데이터, 네트워크 연결 최적화.

멀티 컨테이너 관리: docker-compose를 활용하여 여러 서비스 한 번에 실행 및 관리 가능. 네트워크 자동 연결, 환경 공유 등 효율적 배포 가능.


요약

명령어 / 영역 설명
docker version / -v 도커 버전 정보 확인
docker images / pull / rmi 이미지 목록 조회 및 삭제
docker run / ps / stop / rm 컨테이너 생성, 실행, 종료, 삭제
docker logs / exec 로그 조회 및 쉘 접속
docker network / volume 네트워크와 볼륨 관리
docker build / push / tag 이미지 빌드 및 업로드

마무리

Docker는 현대 DevOps 문화에서 핵심 도구로 자리 잡은 만큼, 기본 명령어와 활용 전략을 숙지하는 것이 중요합니다. 위 내용을 참고하여 실무 환경에서 안전하고 효율적인 컨테이너 운영과 배포를 실현하시기 바랍니다.

참고 URL

연관 포스트

Leave a Reply