여러가지/Docker & AWS (26) 썸네일형 리스트형 [실습](2) Dockerfile 사용하여 자체 이미지 빌드 ● 실습 환경(OS) Rocky Linux release 8.7 (Green Obsidian) Step1. Dcokerfile 생성※ server.js 파일에서 수신 포트 3001으로 변경합니다.(파일) Dockerfile----------------------------------------------------------------------------------------------------------------FROM node:latestWORKDIR /appCOPY package.json /appRUN npm installCOPY . /appEXPOSE 3001 # 로컬 시스템 컨테이너CMD ["npm", "start"]-------------------------------------.. [실습](1) 로컬 실행 NodeJS 애플리케이션 ● 실습 환경(OS) Rocky Linux release 8.7 (Green Obsidian) Step1. 작업 디렉토리 생성# mkdir /home/docker Step2. 패키지 다운로드 및 확인# yum install npm -y# npm -v# node -v Step3. 생성 파일 확인(경로) 작업 디렉토리※ 현재 package-lock.json 파일만 생성되었습니다. Step4. package.json 파일 생성# npm init ※ package.json 파일 초기화 명령어로 적절한 값 입력합니다.-------------------------------------------------------------------------------------{ "name": "test", "vers.. [실습](0) 선수 작업 ● 실습 환경(OS) Rocky Linux release 8.7 (Green Obsidian) 선수 작업 1. Docker 설치# yum update -y# dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo# dnf -y install docker-ce docker-ce-cli containerd.io docker-compose-plugin# systemctl --now enable docker[참고] https://docs.rockylinux.org/ko/gemstones/containers/docker/ 도커 - 엔진 설치 - Documentationdocker 소개 Docker Engine은 Ro.. [정리] server.js : 서버 시작시키는 기본 파일이다.-------------------------------------------------------------------------------------const http = require('http'); const hostname = '0.0.0.0'; const port = 3000; ※ Dockerfile의 포트와 동일해야한다.const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello World\n'); }); server.listen(port, hostname, () => { .. [정리] package.json : 프로젝트의 메타데이터 포함하고 있는 설정 파일로, 프로젝트에 필요한 모듈과 버전, 스크립트 등을 정의한다. -------------------------------------------------------------------------------------{ "name": "project-name", "version": "1.0.0", "description": "A sample Node.js project", "main": "server.js", "scripts": { "start": "node server.js", "test": "echo \"Error: no test specified\" && exit 1" }, "author": "Your Name",.. [정리] Docker 전체 개념 ● 개념 - 이미지 : 컨테이너 실행하기 위한 모든 파일 및 설정을 포함하는 템플릿- 컨테이너 : 이미지를 실행한 상태로, 애플리케이션 및 해당 환경을 포함한 가상화된 독립 실행 환경- Dockerfile : 이미지 생성 스크립트 파일- 네트워크- 볼륨 : 데이터 저장- 로그- Docker Compose : 여러 컨테이너 정의 및 관리 (docker-compose.yml) (ㄱ) 이미지※ 컨테이너 실행 시 이미지 별도로 불러오지 않아도 된다. 1) 불러오기# docker pull ex) # docker pull nginx:latest 2) 빌드# docker build .# docker build -t :[1/latest] . -t : 이름:태그 지정 3) 전체 이미지 확인# docker imag.. [정리] 스스로 구축하는 AWS 클라우드 인프라 👍 최종 아키텍처 다이어그램 [섹션 1] 서버리스 정적 웹사이트 호스트 및 성능 가속화 ● AWS 서비스 - Amazon S3 (Simple Storage Service): 서버리스 정적 웹사이트 호스트 - Amazon CloudFront (CDN, Content Delivery Network): 성능 가속화 [섹션 2] LAMP 웹 서버 및 Application Load Balancer 구성 ● AWS 서비스 - Amazon VPC (VPC, Subnet, Internet Gateway, Route Table & NAT Gateway): 기본 네트워크 환경 & 외부 통신 - Amazon EC2: LAMP 웹 서버 (Linux, Apache, MySQL, PHP) - Amazon EBS(Elastic B.. [섹션 5] 다중 컨테이너 애플리케이션 구축하기 -------------------------------------------------- 목차 ---------------------------------------------------- [실습 1] (네트워크 X) mongoDB 데이터베이스, 백엔드 API 노드 서버, 프론트엔드 React 애플리케이션 [실습 2] (네트워크 O) mongoDB 데이터베이스, 백엔드 API 노드 서버, 프론트엔드 React 애플리케이션 [실습 3] 볼륨을 생성하여 mongoDB에 데이터 지속성 추가하기 [실습 4] mongoDB에 환경변수 추가하기 [실습 5] NodeJS 컨테이너에 볼륨, 바인드마운트 및 폴리싱 추가하기 [실습 6] mongoDB에 환경변수 추가하기 업그레이드 [실습 7] React 컨테이너에 대한.. 이전 1 2 3 4 다음