2023. 7. 16. 23:38ㆍAWS 기반 데이터분석 처리 고급 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 |