도커

 도커


1. 도커 데스크탑 설치


실행

https://log4day.tistory.com/66


1) 도커 파일 작성


FROM : 컨테이너 런타임 환경 ( 버전을 명시하지 않으면, 최신 버전을 사용한다. 예, FROM node:14 )

WORKDIR : 도커 컨테이너의 워크 스페이스. 스크립트 파일에 명시한 파일이 읽고 쓰여질 경로

RUN : 이미지 빌드 시점에 실행할 CLI 명령어 ( 나의 경우 package.json 파일을 읽어 의존성 패키지를 설치하게 했다. )

EXPOSE : 컨테이너 실행 시 프로세스 포트

CMD : 컨테이너 실행 시 실행 명령어 ( RUN과 실행 시점이 다르다. RUN은 이미지 빌드할 때이다. )

# ============================================================

#                    Dockerfile 내부 스크립트

# ============================================================


# 실행환경

FROM node


# 도커 컨테이너 Work Directory 

#   - 명령어 실행 Default 경로 설정

WORKDIR /app



# COPY는 일종의 코드 스냅샷과 같음. Build 명령어로 이미지가 만들어졌다면, 수정이 어려움 ( Image = Read-only )

#

# 2개의 경로

#   (1) 이미지화 시킬 파일 경로, 이미지로 만들 때 읽을 파일 경로

#   (2) 도커 내부 이미지 저장 경로 ( root 경로는 권장하지 않음 )

#       - Work Directory를 따로 지정하지 않으면, 명령어는 해당 경로에서 실행

#       - WORKDIR 지정 시, 상대 경로로 사용됨

#

# 빌드 시, Layer 캐싱 활용 (소스코드만 변경될 경우 저장된 캐시 사용)

COPY package.json /app



# 실행 명령어

RUN npm install



# 포트 지정 ( From Isolated System to Local System)

#   - 문서로서 기록 ( 어떤 포트에서 동작하면 좋은지 가이드 용도) > 실제 동작은 하지 않음

#   - docker run -p 3000:80 [ 이미지 ID ]

#   - -p = publish > 로컬 PC와 컨테이너를 연결

EXPOSE 80



# RUN vs CMD

#   - RUN : 이미지 생성 시, 실행

#           문자열 형식

#   - CMD : 이미지로부터 컨테이너 실행 시, 실행 ( 항상 마지막에 명시 )

#           배열 형식

CMD ["node", "server.js"]


2) 빌드

# 빌드 명령어 ( 워크 스페이스 루트 경로에서 실행 )

docker build .


3) 실행

# 도커 실행

#  - 로컬 PC에서 읽을 포트

#  - 컨테이너 내부 실행 포트

#  - 생성된 이미지 ID ( 빌드 로그 제일 마지막에 sha256 이라는 키워드가 붙여 표기된 값 )

docuer run -p [Local Port]:[Process Port in Container] [ Image ID ]


# 도커 실행 명령어 예제

#  - 컨테이너 실행 포트 = 80

#  - 로컬 PC에서 읽을 포트 = 3000

#  - 도커 이미지 ID = 19d66bf50e2 ( 모든 ID를 입력하지 않고, 앞자리 몇개만 입력해도된다. )

docuer run -p 3000:80 19d66bf50e2


(TBRVT) F:\hankooktire\00_ML\15_SQL_Stremlit\blog-with-code-main\apps\sqlite_streamlit>docker run -p 3000:80 8af4edfd9c4dbb81c9afee9c346ab5b7c598ebfeaf9754c824f5909b30ddc999



4) 실행확인


5) 종료

# 컨테이너 실행 종료

#  - ps 명령어에서 확인한 NAME 항목 입력

docker stop vigorous_feynman


댓글

이 블로그의 인기 게시물

일반PC, Vs. AI PC, from Grok.com

250321 제미나이 Deep Research

python, GPU Install 250203