애플리케이션을 컨테이너(Container) 안에 패키징하고 배포하는 도구
어디서든 같은 환경(같은 모듈)을 가지고 있어 "내 로컬에서는 되는데 서버에서는 안 돼요" 같은 문제가 줄어듬
독립된 환경
에서 애플리케이션을 실행하며, 가볍고 빠름Docker 설치 확인 및 기본 명령어
docker --version # Docker 버전 확인 docker info # Docker 시스템 정보 확인
이미지 관련 명령어
docker images # 로컬에 있는 이미지 목록 조회 docker pull <이미지> # 원격 레지스트리에서 이미지 다운로드 (예: docker pull nginx) docker rmi <이미지> # 이미지 삭제 docker tag <이미지> <태그> # 이미지에 새 태그 추가
컨테이너 실행 및 관리 명령어
docker ps # 실행 중인 컨테이너 목록 조회 docker ps -a # 모든 컨테이너 목록 조회 (종료된 것도 포함) docker run -it <이미지> /bin/bash # 컨테이너를 인터랙티브 모드로 실행 docker run -d -p 80:80 --name my-nginx nginx # 백그라운드에서 실행하며 포트 매핑 docker stop <컨테이너> # 컨테이너 중지 docker start <컨테이너> # 중지된 컨테이너 다시 시작 docker restart <컨테이너> # 컨테이너 재시작 docker rm <컨테이너> # 컨테이너 삭제
컨테이너 내부 접근
docker exec -it <컨테이너> /bin/bash # 실행 중인 컨테이너에 접속 docker attach <컨테이너> # 컨테이너의 표준 입력에 연결
로그 및 상태 확인
docker logs <컨테이너ID> # 컨테이너 로그 확인 docker stats # 컨테이너의 리소스 사용량 모니터링
네트워크 관련 명령어
docker network ls # 네트워크 목록 조회 docker network create <네트워크> # 새 네트워크 생성 docker network connect <네트워크> <컨테이너> # 네트워크에 컨테이너 연결
볼륨 관련 명령어
docker volume ls # 볼륨 목록 조회 docker volume create <볼륨> # 새로운 볼륨 생성 docker volume rm <볼륨> # 볼륨 삭제
이미지 빌드
docker build -t <이미지명>:<태그> . # 현재 디렉토리의 Dockerfile로 이미지 빌드
Docker Compose 명령어
docker-compose up -d # docker-compose.yml을 사용해 서비스 시작 docker-compose down # 서비스 중지 및 네트워크 정리 docker-compose ps # 실행 중인 서비스 목록 조회
Docker 정리 명령어
docker system prune # 사용하지 않는 컨테이너, 네트워크, 이미지, 볼륨 삭제 docker rm $(docker ps -aq) # 모든 컨테이너 삭제 docker rmi $(docker images -q) # 모든 이미지 삭제