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 : 실행할 도커 이미지 지정
*빌드 과정
- Dockerfile 읽기
작성된 Dockerfile을 기반으로 명령어 실행 - 베이스 이미지 다운로드
정의된 FROM 이미지가 로컬에 없으면 도커 허브에서 다운로드 - 명령어 실행
Dockerfile의 각 명령어를 순차적으로 실행 - 레이어 캐싱
이전에 실행된 단계가 변경되지 않았다면 해당 단계를 캐시에서 가져옴 - 이미지 생성
최종적으로 완성된 도커 이미지 생성
생성된 이미지 확인
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 |