브리오 2024. 2. 27. 17:39

class1

FROM node:16-alpine
workdir /app
copy package*.json ./
run npm install
copy . .
expose 80
cmd ["node","app.js"]

npm 설치하고 추가로 생기는 모듈도 챙겨야해서 한번더 전체를 카피한다

 

도커데스크탑을 켜야 엔진이 돌아간다

docker build --tag=backend . -> 뒤에 . 을 붙여야 하는데 현재 폴더에 있는걸 빌드 한다는 뜻이다

 

dockerfile을 각각 이미지로 빌드 하고 내 컴퓨터에 있는 이미지를 도커허브에 넣어야 한다

docker login->docker push name

 

도커레포지에 푸쉬하는 이유 : 로컬에만 존재하면 복구 위험이 존재하기때문에 푸쉬한다

레포지에는 하나의 이미지만 존재할 수 있다

https://m.blog.naver.com/ilikebigmac/222035946425

 

 

dockfile공부 이후 -> 도커 빌드 계층과 도커 런했을때 새로 생기는 레이어 공부하기

 

컨테이너 오케스트레이션 -> 컨테이너 중에 문제가 있는지 없는지 자동으로 감시한다

aws 아이콘에 색있으면 서비스

 

Docker 사용시 데이터 저장방법

1. Docker Volume

2. 바인드 마운트

3. tmpfs 마운트

도커 네트워크 구조

veth: vritual eth

docker0 : 도커 엔진에 의해 기본 생성되는 브릿지 네트워크 -> veth와 eth간 다리역할

class2

마이크로 서비스

trade-off

on-premissed : 기업에서 자체 db서버가 있는 rjt

cloud9에서는 enviroment폴더에서작업해야 한다

 

dockfile에서

copy ./ /usr/local/apache2/htdocs

의미

 

run : 이미지빌드

엔드포인트 : 컨테이너

 

컴퓨터 2개 각각 f,b 존재

c9(ec2)

local -> b.app.js

 

 

1. local의 80 : local의 3333들어가서 hello 받아옴

2. local의  3333 : 그냥 hello 리턴

3. c9의 ec2의 80 : localhost 3333 갔다가 돌아옴

이때 localhost 3333은

compose up을 했기 때문에 특정 ip가 아니라 나의 local3333으로 오게 된다

4. 만약 local에서 서버가 돌아가고 있으면 connet X 나오고

5. 만약 local에서 서버가 돌아가지 않으면 CORS가 나온다

 

+)질문 만약 compose-up을 안하면 ec2에서 어디로 가는지?

compose-up을 안하면 처음부터 도커에 안올라가니까 그냥 접속이 안된다

class3

Run : 이미지 빌드할때

CMD : 컨테이너 실행할때

 

FROM public.ecr.aws/amazonlinux/amazonlinux:latest

# Apache HTTP Server 프로그램 설치
RUN yum update -y && yum install -y httpd

# 서버 기본 index.html 내용 작성
RUN echo 'Hello World!' > /var/www/html/index.html

# apache 설정
RUN echo 'mkdir -p /var/run/httpd' >> /root/run_apache.sh && \
 echo 'mkdir -p /var/lock/httpd' >> /root/run_apache.sh && \
 echo '/usr/sbin/httpd -D FOREGROUND' >> /root/run_apache.sh && \
 chmod 755 /root/run_apache.sh

EXPOSE 80

CMD /root/run_apache.sh

 

-> cmd, run차이 공부

 

 

 

class4