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
728x90
반응형
LIST
'Data-driven Methodology > Data Engineering' 카테고리의 다른 글
[Data Engineering] 다중 컨테이너 앱 (0) | 2024.01.23 |
---|---|
[Data Engineering] 데이터베이스 유지 (0) | 2024.01.23 |
[Data Engineering] 어플리케이션 업데이트 (0) | 2024.01.23 |
Extract / Transform / Load (ETL) (0) | 2022.05.11 |
데이터 공학 (Data Engineering) (0) | 2022.05.11 |