Docker

·Docker
프론트엔드, 백엔드, 데이터베이스를 서로 연결하여애플리케이션 구현은 어떻게 할까?"leafy"라는 식물 관리 애플리케이션을 구현해 보자.      구성 및 흐름 --   실습할 애플리케이션은 총 3개의 서버로 구성되어 있다.Vue.js 기반인 Nginx 웹 서버Spring Boot 기반인 Spring Boot Tomcat WAS 서버PostgreSQL 기반인 Database 서버 흐름 설명클라이언트는 웹 서버의 주소를 브라우저에 입력하여 요청을 보냄웹 서버에서 index.html 파일과 같이 웹페이지를 응답하여 제공클라이언트가 웹 페이지를 읽는 과정에 어떠한 데이터 정보를 접근해야 하는 경우브라우저에서 백엔드로 데이터 관련 요청을 보냄백엔드에서 데이터 조회 및 저장을 하려면 postgreSQL에 접근하여..
·Docker
클라우드 네이티브 애플리케이션이 무엇인가?      클라우드(Cloud)란? --네이버 클라우드나 구글 클라우드처럼 클라우드는 보통 저장소를 의미한다. 즉, 클라우드는 다른 회사의 저장소를 빌려서 사용하는 것이다. 그러다 보니 직접 서버를 운영할 환경이 안된다면 다른 회사의 컴퓨터(클라우드)를 빌여서 서버를 운영하면 된다. 실제로 클라우드를 사용하여 서버를 운영하면 다양한 문제들을 해결할 수가 있다.  1. 트래픽 변동에 대해 빠르게 대처할 수 있는가?  (확장성 Scalability) 직접 서버를 운영하면 내 서버 용량에 맞춰서 설계를 해야 하고사용 가능한 용량을 넘어서는 트래픽이 증가하면 해당 서버는 다운되고 말 것이다.클라우드 환경에서는 트래픽이 증가하면 빠르게 서버를 늘리고 트래픽이 감소하면 서버..
·Docker
멀티 스테이지 빌드란 무엇이고어떻게 사용하는 것일까?      멀티 스테이지 빌드 (Multi-Stage build) --멀티 스테이지 빌드는Dockerfile에서 두 개의 베이스 이미지를 활용하는 방법을 의미한다. 보통 애플리케이션을 빌드하는 과정에서 만들어지는 파일들이 용량을 많이 차지한다.하지만 해당 파일들은 실제로 애플리케이션이 실행되는 시점부터는 사용하지 않기 때문에이미지 빌드에 사용하는 이미지와 실행에 사용하는 이미지로 나누는 것이다.이렇게 멀티 스테이지 빌드를 잘 활용하면실제로 애플리케이션이 실행되는 이미지의 크기를 줄일 수 있다.애플리케이션 빌드 vs 이미지 빌드애플리케이션 빌드는소스 코드를 실행 가능한 프로그램으로 만드는 것을 의미즉, 해당 소스 코드가 실행되기 위해 필요한 라이브러리를 ..
·Docker
Dockerfile에 작성하는 지시어들은어떤 것들이 있을까?      Dockerfile의 파일명이 "Dockerfile"이 아니고 별도로 지정한 경우의 build 명령어 --Dockerfile의 파일명은 일반적으로 그냥 "Dockerfile"이라고 저장하여 사용한다. 다만 어떠한 상황에 의해 파일명을 다르게 저장해야 하는 경우도 생긴다. 예시로상황에 알맞게 빌드하기 위해 상황별 Dockerfile을 여러 개 저장하고 build 할 때 원하는 Dockerfile로 build를 하는 상황이다.Dockerfile을 각각 다른 내용을 작성 후 AAA, BBB, CCC라고 총 3개의 파일을 저장하고 특정 상황마다 build를 할 때 원하는 Dockerfile을 선택하여 build한다. 이렇게 Dockerfile..
·Docker
빌드 콘텍스트가 무엇일까?      빌드 컨텍스트 (Build Context) --빌드 컨텍스트는이미지를 빌드할 때 사용되는 폴더를 의미한다.  이미지 빌드 방식은도커 데몬이 임시 컨테이너를 실행시키면서 레이어를 하나씩 추가하면서 커밋을 하게 된다. 그래서 도커 데몬이 해당 동작들을 수행하기 위해서는빌드에 사용되는 파일들과 Dockerfile 파일을 전달해줘야 한다. (해당 파일들이 담긴 폴더 자체를 전달)(그래야 도커 데몬이 Dockerfile에 작성된 내용(코드)들을 가지고 빌드를 진행할 수 있게 된다.) 이때 이렇게 도커 데몬에게 전달해 주는 폴더가 바로 빌드 콘텍스트이다. 즉, 이전에 build를 하던 과정을 보면 index.html 파일과 Dockerfile을 담고 있던 01.buildnginx..
·Docker
이미지 빌드 방법으로이미지를 만드는 방법은 무엇일까?      이미지를 만드는 방법 -- 이미지를 만드는 방법에는 크게 2가지가 존재한다.커밋 (commit)  :  실행 중인 컨테이너의 상태를 그대로 이미지를 저장한다.빌드 (build)   :   Dockerfile을 통해서 이미지를 저장한다.일반적으로 build 방식을 사용하지만build 방식 또한 commit 방식을 기반으로 동작하기 때문에commit 방식을 알아 두는 것이 좋다.--    IaC (Infrastructure as Code) 개념 --이미지 빌드에 대해 알아보기 전에먼저 IaC에 대해서 알아야 한다. IaC는인프라 구조에서 가장 중요한 개념으로인프라 상태를 코드로 관리하는 것을 의미한다. 장점일관성  :  모든 인프라 변경 사항이 ..
·Docker
이미지 커밋 방법으로이미지를 만드는 방법은 무엇일까?      이미지를 만드는 방법 -- 이미지를 만드는 방법에는 크게 2가지가 존재한다.커밋 (commit)  :  실행 중인 컨테이너의 상태를 그대로 이미지를 저장한다.빌드 (build)   :   Dockerfile을 통해서 이미지를 저장한다.일반적으로 build 방식을 사용하지만build 방식 또한 commit 방식을 기반으로 동작하기 때문에commit 방식을 알아 두는 것이 좋다.--    commit 방식을 통해 이미지 저장하는 과정 -- 공식 Nginx 이미지를 컨테이너로 실행(공식 Nginx 이미지에는 Nginx가 설치되어 있고 기본으로 제공하는 index.html 파일도 존재)(컨테이너로 실행하면 컨테이너 레이어가 생김)컨테이너 실행 후 i..
·Docker
이미지에서 레이어란 무엇일까?      레이어 (Layer)란? --이미지는컨테이너를 실행하기 위한 읽기 전용 파일이다. 해당 이미지는 저장소를 효율적으로 사용하기 위해서레이어드 파일 시스템으로 구성되어 있다.즉, 이미지는 여러 개의 레이어로 구성되어 있다. 레이어란여러 개의 층으로 구성되어 있는 것 중에 하나의 층을 의미한다.  기존에 이미지를 다운로드할 때 여러 단계에 걸쳐서 다운이 받아졌었다.바로 이 한 줄 하나가 레이어를 의미한다. 이미 가지고 있는 이미지 중에서 같은 레이어를 사용하고 있었다면이미지를 다운받을 때 해당 레이어는 다운로드하지 않고 기존에 가지고 있는 레이어를 공유해서 같이 사용하게 된다.--    왜 이미지는 여러 개의 레이어로 구성되어 있을까? --바로 레이어드 구조가 재사용하기..
아-니지
'Docker' 카테고리의 글 목록 (2 Page)