2024.10.22 Docker

장재영·2024년 10월 22일
0

Docker

  • 애플리케이션을 컨테이너(Container) 안에 패키징하고 배포하는 도구

  • 어디서든 같은 환경(같은 모듈)을 가지고 있어 "내 로컬에서는 되는데 서버에서는 안 돼요" 같은 문제가 줄어듬

1. 도커 파일(Dockerfile)

  • 이미지를 정의하는 파일
  • 어떤 OS를 사용할지, 어떤 패키지를 설치할지, 어떤 명령을 실행할지를 명시

2. 이미지(Image)

  • 애플리케이션과 필요한 라이브러리, 실행 환경을 포함하는 템플릿
  • 이미지가 빌드되면 어디서든 동일하게 실행

3. 컨테이너(Container)

  • 이미지를 실행한 인스턴스
  • 독립된 환경에서 애플리케이션을 실행하며, 가볍고 빠름
  • VM과 다르게, 호스트 OS 자원을 공유하면서도 격리된 환경을 제공

4. 도커 허브(Docker Hub)

  • Docker 이미지의 공유 저장소
  • 공개된 이미지를 다운로드하거나 직접 이미지를 업로드

명령어

  • 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)  # 모든 이미지 삭제
profile
개발 하고 싶은 비버

0개의 댓글