본문 바로가기

728x90
반응형

Container/Docker

(9)
[Docker] 도커 스웜 구성 도커 스웜은 두 가지 모드로 구성된다. "클래식 모드", "도커 스웜 모드" 클래식 모드(Classic Mode) 클래식 모드는 초기 버전의 도커 스웜으로, 독립 실행형 컨테이너와 서비스로 구성되며, 서비스 간의 통신과 네트워킹 관리가 스웜 모드보다 복잡하다. 현재는 스웜 모드가 주로 사용되며, 클래식 모드는 더 이상 활발하게 개발되지 않는다. 도커 스웜 모드(Docker Swarm Mode) 도커 엔진의 내장 기능으로 스웜 클러스터를 생성하고 관리하는 기능을 제공한다. 스웜 모드는 높은 수준의 추상화를 제공하며, 서비스를 생성하고 관리하는 데에 간편한 명령어와 기능을 제공한다. 스웜 모드는 컨테이너 간의 네트워킹과 서비스 간의 통신을 더욱 쉽게 관리할 수 있도록 설계되었다. 노드(Node) 노드는 클러..
[Docker] Docker Swarm 개요 컨테이너 오케스트레이션 컨테이너들을 지휘하는 메인 컨트롤러가 있고 그 지휘에 맞춰 컨테이너의 배포, 관리, 확장, 네트워킹을 자동화하는 것을 말한다. 컨테이너화 기술은 애플리케이션을 격리된 환경인 컨테이너로 패키징하여 실행하는 것을 의미한다. 이로 인해 애플리케이션 개발과 배포가 더욱 편리해졌지만, 애플리케이션의 복잡성이 증가하면서 여러 개의 컨테이너를 효과적으로 관리해야 하는 필요성이 대두되었다. 이를 위해 컨테이너 오케스트레이션 도구가 필요하다. 오케스트레이션 도구의 필요성 복잡한 애플리케이션 관리: 애플리케이션이 여러 개의 컨테이너로 이뤄질 때, 컨테이너 간의 상호작용, 네트워킹, 로드 밸런싱, 스케일링 등을 효율적으로 관리해야 한다. 고가용성: 애플리케이션의 가용성을 유지하려면 컨테이너 인스턴스의..
[Docker] 도커 컴포즈(Docker Compose) 도커 컴포즈(Docker Compose) 공통성을 갖는 컨테이너 애플리케이션 스택을 야믈(YAML) 코드로 정의하는 정의서 YAML(YAML Ain't Markup Language) : XML, C, 파이썬, 펄, RFC2822에서 정의된 e-mail 양식에서 개념을 얻어 만들어진 '사람이 쉽게 읽을 수 있는' 데이터 직렬화 양식 이렇게 공통 목적을 갖는 애플리케이션 스택을 도커 컴포즈 야믈 코드로 정의해서 한 번에 서비스를 올리고 관리할 수 있는 도구를 도커 컴포즈라고 한다. 도커 컴포즈로 실행된 컨테이너는 독립된 기능을 가지며 공통 네트워크로 구성되기 때문에 컨테이너 간 통신이 쉽고 공통성 있는 컨테이너들을 포함하여 쉽고 빠른 런타임 환경을 제공한다. 도커 컴포즈는 테스트, 개발, 운영의 모든 환경에..
[Docker] 도커 이미지 PUSH, PULL 도커 이미지 PUSH 생성한 도커 이미지를 도커 허브에 PUSH하는 방법은 다음과 같다. 1. 이미지에 태그 추가 docker tag : /: # ex docker tag node-app:latest pupba/node-app:beta 2. 이미지 푸시 docker push /: # ex docker push pupba/node-app:beta 도커 이미지 PULL 도커 허브에 있는 도커 이미지를 가져오는 방법은 다음과 같다. 1. Docker 이미지 가져오기 docker pull /: # ex docker pull pupba/node-app:beta 2. 가져온 이미지 실행 docker run -p 3000:3000 pupba/node-app:beta
[Docker] 도커로 Node.js, flask 서버 이미지 만들어 사용하기 Node.js 서버 이미지 먼저 Node.js 서버 프로젝트를 만들어야한다. npm install express npm install ejs // server.js const express = require("express"); const app = express(); let router = require("./routes/main")(app); app.set("views", __dirname + "/views"); app.set("view engine", "ejs"); app.engine("html", require("ejs").renderFile); let server = app.listen(3000, () => { console.log("Server Start!!"); }); // main.js m..

728x90
반응형