본문 바로가기
Data-driven Methodology/Data Engineering

[Data Engineering] 도커 (Docker)

by goatlab 2024. 1. 22.
728x90
반응형
SMALL

도커 (Docker)

 

신뢰할 수 있는 데이터 인프라 구축과 중복된 작업을 피하기 위해 데이터 엔지니어링은 필수이다. 모든 어플리케이션 및 패키징, 종속된 라이브러리를 어느 환경에서나 개발하기 위해서 쉽게 배포하고 안정적으로 구동할 수 있게 도와주는 도커를 사용한다.

 


Dockerfile
Dockerfile은 지정된 이미지를 빌드하는 데 필요한 모든 명령을 순서대로 나열한 텍스트 파일이다. Dockerfile은 Docker 빌드 명령에 의해 Docker 이미지를 생성하는 데 사용된다.
Image 이미지는 읽기 전용이며 변경되지 않는다. Docker 이미지는 코드, 런타임, 라이브러리, 환경 변수, 구성 파일 등 소프트웨어를 실행하는 데 필요한 모든 것을 포함하는 경량의 독립 실행형 실행 패키지다.
Container 도커 컨테이너는 도커 이미지의 런타임 인스턴스이다. 즉, 컨테이너는 이미지의 실행 버전이다. 컨테이너는 호스트 및 다른 컨테이너와 완전히 분리되어 있고, 자체 파일 시스템을 가지며, 독립적으로 시작, 중지, 삭제할 수 있다.

 

 

어플리케이션 컨테이너화

 

 

어플리케이션 소스 코드를 로컬에 가져 온다.

 

git clone https://github.com/docker/getting-started-app.git

 

그 다음, getting-started-app 디렉토리 경로로 변경하고 빈 Dockerfile을 생성한다.

 

touch Dockerfile

 

Dockerfile에 텍스트 편집기나 코드 편집기를 사용하여 다음 콘텐츠를 추가한다.

 

# syntax=docker/dockerfile:1

FROM node:18-alpine
WORKDIR /app
COPY . .
RUN yarn install --production
CMD ["node", "src/index.js"]
EXPOSE 3000

 

앱 이미지 빌드

 

다음 명령을 사용하여 이미지를 빌드한다.

 

docker build -t getting-started .
-t 이미지에 태그를 지정한다. 사람이 읽을 수 있는 최종 이미지 이름이다. image라는 이름을 지정했기 때문에 getting-started컨테이너 실행 시 해당 이미지를 참조할 수 있다.

 

 

앱 컨테이너 시작

 

이제, 이미지가 있으므로 docker run명령을 사용하여 컨테이너에서 애플리케이션을 실행할 수 있다.

 

docker run -dp 127.0.0.1:3000:3000 getting-started
-d (--detach) 백그라운드에서 컨테이너를 실행한다. 이는 Docker가 컨테이너를 시작하고 터미널 프롬프트로 돌아가는 것을 의미한다. 컨테이너 아래 Docker 대시보드에서 보거나 docker ps터미널에서 실행하여 컨테이너가 실행 중인지 확인할 수 있다.
-p (--publish) 호스트와 컨테이너 간의 포트 매핑을 생성합니다. 플래그 -p는 형식의 문자열 값을 사용한다 (HOST:CONTAINER). 여기서 HOST는 호스트의 주소이고 CONTAINER는 컨테이너의 포트이다. 이 명령은 컨테이너의 포트 3000을 호스트의 127.0.0.1:3000()에 게시한다. localhost:3000 포트 매핑이 없으면 호스트에서 애플리케이션에 액세스할 수 없다.

 

https://docs.docker.com/get-started/02_our_app/#build-the-apps-image

 

Containerize an application

Follow this step-by-step guide to learn how to create and run a containerized application using Docker

docs.docker.com

 

728x90
반응형
LIST