ABOUT ME

Tip을 정리해봅시다.

  • [1장] 도커 프로그램 개념과 실제 이용
    [공부] Docker 2025. 3. 9. 08:33

     

    아직 도커(Docker)를 접해보지 않았다면 “컨테이너? 가상머신이랑 뭐가 다른 거지?”라는 생각이 들 수 있습니다. 실제로 도커는 가상머신과는 다른 방식으로 애플리케이션을 격리하고 배포하게 해주는 ‘컨테이너’라는 개념을 중심으로 작동합니다.

    이 포스팅에서는 도커를 처음 접하는 분들을 위해 기본 개념부터, 입문자가 꼭 알아야 할 50가지 명령어와 그 간단한 설명을 정리해보았습니다. 앞으로 도커를 활용해보고 싶은 분들에게 유용한 정보가 되길 바랍니다.


    1. 도커의 개념과 특장점

    1) 도커란 무엇인가?

    • 도커는 애플리케이션을 격리된 환경에서 실행할 수 있게 해주는 ‘컨테이너’ 기술을 제공하는 오픈소스 플랫폼입니다.
    • 컨테이너는 독립적인 환경을 빠르게 생성하고 배포할 수 있어, 개발, 테스트, 운영 전 단계에서 일관된 환경 구성이 가능합니다.

    2) 도커의 장점

    • 이식성(Portability): 어디서든 동일하게 동작하므로 개발 환경과 운영 환경의 차이를 크게 줄일 수 있습니다.
    • 빠른 배포: 컨테이너 이미지로부터 즉시 실행 가능한 환경을 만들 수 있어, 서비스 배포 시간이 단축됩니다.
    • 경량화: 기존 가상머신보다 리소스 사용량이 적고, 이미지 계층화 기술로 효율적인 관리가 가능합니다.

    2. 입문자라면 꼭 알아야 할 도커 명령어 50선

    도커를 처음 학습할 때 자주 접하게 되는 주요 명령어를 50가지로 선정했습니다. 각 명령어는 짧게라도 개념을 파악하고 넘어가면 훨씬 편리하게 활용할 수 있을 것입니다.

    (1) 기본 이미지 및 컨테이너 확인/관리

    1. docker version
    • 도커 클라이언트와 서버(데몬)의 버전을 확인하는 명령어
    1. docker info
    • 도커 전체 시스템 정보(이미지, 컨테이너 수 등)를 확인
    1. docker pull [이미지명]
    • 도커 허브(Docker Hub) 등에서 이미지를 내려받아(local)에 저장
    1. docker images
    • 로컬에 저장된 도커 이미지를 목록으로 보여줌
    1. docker image rm [이미지명 or ID]
    • 로컬에 저장된 이미지를 삭제

    (2) 컨테이너 생성과 실행

    1. docker run [이미지명]
    • 지정된 이미지를 기반으로 컨테이너를 생성 및 실행
    • -d(백그라운드 실행), -p(포트 매핑) 등 옵션 다양
    1. docker create [이미지명]
    • 컨테이너를 생성만 하고 실행하지는 않음
    1. docker start [컨테이너명 or ID]
    • 중지된 상태의 컨테이너를 다시 시작
    1. docker stop [컨테이너명 or ID]
    • 실행 중인 컨테이너를 정상적으로 중지
    1. docker restart [컨테이너명 or ID]
    • 컨테이너를 중지 후 재시작
    1. docker rm [컨테이너명 or ID]
    • 중지된 컨테이너를 삭제
    1. docker ps
    • 실행 중인 컨테이너 목록을 확인
    • -a 옵션으로 중지된 컨테이너까지 조회 가능

    (3) 컨테이너 내부 접근과 로그

    1. docker exec -it [컨테이너명 or ID] bash
    • 실행 중인 컨테이너 내부에 접속해 쉘 사용
    1. docker attach [컨테이너명 or ID]
    • 컨테이너에서 실행 중인 프로세스에 연결(세션 공유)
    1. docker logs [컨테이너명 or ID]
    • 컨테이너에서 실행 중인 애플리케이션의 로그 확인
    • -f 옵션으로 실시간 로그 확인 가능

    (4) 이미지 빌드와 태그

    1. docker build -t [이미지명:태그] [Dockerfile이 있는 경로]
    • Dockerfile을 사용해 이미지를 생성
    1. docker tag [이미지명:태그] [새로운이미지명:새로운태그]
    • 이미 만들어진 이미지에 새 태그를 부여
    1. docker commit [컨테이너명 or ID] [이미지명:태그]
    • 실행 중인 컨테이너의 상태를 새로운 이미지로 저장

    (5) 이미지/컨테이너 상세 확인

    1. docker inspect [이미지 or 컨테이너명/ID]
    • 이미지나 컨테이너의 상세 정보를 JSON 형태로 확인
    1. docker history [이미지명 or ID]
    • 이미지가 어떤 레이어로 구성되었는지 확인
    1. docker top [컨테이너명 or ID]
    • 컨테이너 내부에서 동작 중인 프로세스 목록 확인

    (6) 네트워크 관련

    1. docker network ls
    • 도커 네트워크 목록 조회
    1. docker network create [네트워크명]
    • 새로운 사용자 정의 네트워크를 생성
    1. docker network inspect [네트워크명]
    • 해당 네트워크에 대한 상세 정보 확인
    1. docker network connect [네트워크명] [컨테이너명 or ID]
    • 컨테이너를 특정 네트워크에 연결
    1. docker network disconnect [네트워크명] [컨테이너명 or ID]
    • 컨테이너를 특정 네트워크에서 분리
    1. docker network rm [네트워크명]
    • 사용자 정의 네트워크 삭제

    (7) 볼륨(Volume) 관리

    1. docker volume create [볼륨명]
    • 새로운 도커 볼륨 생성
    1. docker volume ls
    • 생성된 볼륨 목록 조회
    1. docker volume inspect [볼륨명]
    • 볼륨 상세 정보 확인
    1. docker volume rm [볼륨명]
    • 지정된 볼륨 삭제

    (8) 컨테이너 파일 복사

    1. docker cp [로컬경로] [컨테이너명 or ID]:[컨테이너경로]
    • 로컬에서 컨테이너 내부로 파일 또는 디렉토리 복사
    1. docker cp [컨테이너명 or ID]:[컨테이너경로] [로컬경로]
    • 컨테이너 내부에서 로컬로 파일 또는 디렉토리 복사

    (9) 도커 허브(Docker Hub) 및 이미지 레지스트리

    1. docker login
    • 도커 허브(또는 다른 레지스트리)에 로그인
    1. docker logout
    • 도커 허브(또는 다른 레지스트리)에서 로그아웃
    1. docker search [키워드]
    • 도커 허브에서 해당 키워드로 이미지를 검색
    1. docker push [이미지명:태그]
    • 로컬 이미지를 도커 허브(또는 다른 레지스트리)에 업로드

    (10) 시스템 상태 관리

    1. docker system df
    • 도커가 사용 중인 디스크 용량 정보 확인
    1. docker system prune
    • 사용되지 않는 모든 컨테이너, 네트워크, 이미지, 볼륨 등을 정리
    1. docker stats
    • 실행 중인 컨테이너들의 리소스 사용량(CPU, 메모리 등) 실시간 확인

    (11) 컨테이너 이름, 재시작 정책

    1. docker rename [기존이름] [새이름]
    • 컨테이너 이름 변경
    1. docker update --restart=always [컨테이너명 or ID]
    • 컨테이너 재시작 정책 수정(서버 재부팅 시 자동 시작 등)

    (12) Docker Compose (기본)

    1. docker-compose up
    • docker-compose.yml 파일 기반으로 여러 컨테이너를 한 번에 실행
    1. docker-compose down
    • docker-compose.yml 기반으로 실행했던 컨테이너, 네트워크 등을 중지 및 정리
    1. docker-compose ps
    • Compose로 관리되는 컨테이너들의 상태 확인
    1. docker-compose build
    • docker-compose.yml에서 정의된 빌드를 실행

    (13) Docker Swarm (기본)

    1. docker swarm init
    • 도커 스웜 모드를 초기화하여 현재 노드를 관리 노드(Manager)로 설정
    1. docker swarm join
    • 다른 노드를 워커(Worker) 노드로 스웜에 참가시킬 때 사용
    1. docker node ls
    • 스웜에 참여 중인 노드들 확인
    1. docker service create [옵션] [이미지명]
    • 스웜 모드에서 서비스(컨테이너 군집)를 생성하고 배포

    마무리

    이상으로 도커를 처음 시작할 때 꼭 알아두면 좋은 50가지 주요 명령어를 간단히 살펴보았습니다. 도커를 활용하면 개발 환경 설정부터 서비스 배포까지 훨씬 효율적이면서도 가벼운 컨테이너화를 경험할 수 있습니다. 명령어들에 익숙해지고 나면, 직접 Dockerfile과 Compose 파일 등을 응용해 더 복잡한 환경도 쉽게 관리할 수 있게 될 것입니다.

     

    앞으로 진행될 도커 시리즈에서 좀 더 자세한 예시와 노하우를 다뤄보도록 하겠습니다!

    출처 입력

     

     

Designed by Tistory.