도커

2023. 7. 16. 23:38AWS 기반 데이터분석 처리 고급 SW 클라우드 개발자 양성과정

도커란? Application을 Packaging할 수 있는 Tool

Container라고 불리는 작은 S/W Unit(Application, System Tools, Dependencies)를 하나로 묶는다. -> 다른 서버, PC 쉽게 배포하고 안정적으로 구동할 수 있게 해주는 도구.

ex) NodeJS: 소스파일만 서버에 배포하는 것만으로는 어플리케이션을 구동하는데 문제점이 있음. NodeJS와 npm, 외부 라이브러리를 사용한다면 여러 Dependencies와 환경설정하는 것(환경변수) 이런 모든것들을 다 설정해줘야함. 서버마다, 개발자들이 사용하느 PC마다 이런 모든 것들을 다 설치하고 설정하는 것은 번거롭고 오류가 많이 발생함. 

내가 NodeJS가지고 있고, 서버에도 NodeJS가 있으니깐 자동으로 동작하겠지?라고 생각하는 순간 버전이 맞지 않아 오류가 발생할 수 있음. 이런 번거로움을 해결해주기 위해 도커(컨테이너)가 나타남.

도커 컨테이너 안에는 1) application(app.js) 2) nodejs(환경설정) 3) configuration 4) npm 5) 여러 라이브러리의 Dependencies 6) 어플리케이션에 필요한 다양한 리소스 가 포함되어 있음.

어플리케이션을 구동하는데 필요한 모든 것들을 도커 컨테이너에 담아놓았음.


Building Containers(컨테이너 생성방법)

1) Dockerfile 생성 (컨테이너를 어떻게 만들어야 하는지 설명서, Recipe와 같은 역할)

- Copy file(Application을 구동하기 위해서 꼭 필요한 파일들은 무엇이 있는지)

- Install dependencies(어떤 Framework나 Libraries를 설치해야하는지, 외부 dependencies에 대해 명시 가능)

- Set environment variable(필요한 환경 변수 설정 가능)

- Run setup scripts(어떻게 구동해야하는지 Script 구성 가능)

 

2) Image 생성(작성한 Dockerfile을 바탕으로 Image를 만들 수 있음)

-Image안에는 Application을 실행할기 위한 코드, Dockerfile, Runtime환경, 시스템 툴, 시스템 라이브러리 등 모든 Setting들이 포함되어 있음. 실행되고 있는 Application의 상태를 스냅샷해서 이미지로 생성. 만들어진 이미지는 변경할 수 없음.

 

3) Container 구동

- 캡쳐해둔 Image를 고립된 환경에서 개별적인 FileSystem안에서 실행할 수 있는 것을 말함. 컨테이너 안에서 Application이 동작한다.


컨테이너 배포 방법

Public Private
dockerhub, Red hat, GitHub Packasges aws, Google Cloud, Microsoft Azure

'AWS 기반 데이터분석 처리 고급 SW 클라우드 개발자 양성과정' 카테고리의 다른 글

파이널 Azure OpenAI  (0) 2023.07.19
HTML/CSS  (0) 2023.07.17
유스케이스 다이어그램  (0) 2023.07.14
NodeJS정리  (0) 2023.07.13
AWS_정리  (0) 2023.07.12