Docker

Docker - 이미지 빌드 및 실행

최 수빈 2025. 2. 12. 16:46

 

Docker 이미지 빌드

docker build -t 이미지이름:태그 Dockerfile경로

 

예시코드

docker build -t myapp:1.0

-t 옵션 : 이미지에 이름과 태그 지정

. (현재 디렉토리) : Dockerfile이 있는 경로

 

Docker 컨테이너 실행

docker run -p 호스트포트:컨테이너포트 이미지이름:태그

 

예시코드

docker run -p 8000:8000 myapp:1.0

-p 8000:8000 : 호스트의 8000번 포트와 컨테이너의 8000번 포트 연결

myapp:1.0 : 실행할 도커 이미지 지정

 

 

*빌드 과정

  1. Dockerfile 읽기
    작성된 Dockerfile을 기반으로 명령어 실행
  2. 베이스 이미지 다운로드
    정의된 FROM 이미지가 로컬에 없으면 도커 허브에서 다운로드
  3. 명령어 실행
    Dockerfile의 각 명령어를 순차적으로 실행
  4. 레이어 캐싱
    이전에 실행된 단계가 변경되지 않았다면 해당 단계를 캐시에서 가져옴
  5. 이미지 생성
    최종적으로 완성된 도커 이미지 생성

 

생성된 이미지 확인

docker images

 

 

도커 이미지 관리

 

이미지 삭제

docker rmi 이미지 이름 또는 ID

 

 

이미지 태그 변경 

docker tag 기존 이미지 이름:기존 태그 새 이미지 이름:새태그

 

예시 코드

docker tag myapp:1.0 myapp:latest

 

 

 

이미지 저장  및 로드

 

이미지를 파일로 저장

docker save -o myapp.tar myapp:1.0

 

파일에서 이미지 로드

docker lead -i myapp.tr

 

 

빌드 컨텍스트 관리

COPY로 불필요한 파일을 복사하지 않도록 .dockerignore 파일 설정

 

 

REPOSITORY TAG IMAGE ID CREATED SIZE
myapp 1.0 a1b2c3d4e5f6 5 minutes ago 123MB
python 3.10-slim d1e2f3g4h5i6 2 days ago 23MB

 

REPOSITORY : 이미지 이름

TAG : 이미지 태그

IMAGE ID : 이미지의 고유 ID

SIZE : 이미지 크기

 

 

-p 8000:8000 : 호스트와 컨테이너의 포트 연결

myapp:1.0 : 실행할 이미지 지정

 

 

Docker 컨테이너 관리

 

 

실행 중인 컨테이너 확인

docker ps

 

모든 컨테이너 확인 (중지된 컨테이너 포함)

docker ps -a

 

실행 중인 컨테이너 중지

docker stop 컨테이너ID 또는 이름

 

컨테이너 삭제

docker rm 컨테이너ID 또는 이름

 

사용하지 않는 모든 컨테이너 삭제

docker system prune

 

컨테이너 내부 포트와 호스트 시스템의 포트 연결 ( 포트 매핑)

p 호스트 포트:컨테이너 포트

 

예시코드

docker run -d -p 8000:8000 myapp:1.0

컨테이너를 백그라운드에서 실행, 호스트의 8000번 포트-컨테이너의 8000번 포트 연결

'Docker' 카테고리의 다른 글

Docker  (0) 2024.12.24
Virtual Machines(VMs) / Containers  (2) 2024.12.15