전체 글
-
Docker (6) - 도커 볼륨Infra/Docker 2024. 1. 25. 17:02
1. 볼륨의 기초 개념 - 컨테이너는 기본적으로 stateless (상태없음)이다. 컨테이너가 실행 된 후 발생하는 모든 변경 사항은 컨테이너 레이어에 만 있다 -> 컨테이너가 종료되면 변경 사항이 모두 사라진다. - 컨테이너는 Stateless하기 때문에 쉽게 개수를 증가시킬 수 있으며, 다른 환경에서도 빠르게 배포할 수 있습니다. - 소프트웨어의 버전 등 컨테이너의 상태 변경이 필요한 경우 새로운 버전의 이미지를 만들어서 배포합니다. - 클라우드 네이트브 환경에서는 MSA 아키텍처에 따라 서버의 개수가 매우 많아집니다. - 모던 애플리케이션의 요구사항을 충족시키기 위해 서버 관리 방법론이 변화했습니다. - 전통적인 서버 방법론은 서버 한대를 중요하게 생각하는 Pet 방식입니다. - 컨테이너를 활용한 ..
-
Docker (5) - 도커 네트워크Infra/Docker 2024. 1. 25. 15:46
1. 네트워크 기본 - 네트워크는 기계와 기계사이를 물리적 케이블로 연결 - 집과 도로의 관계 집과 집사이를 도로를 통해 연결하듯 기계들이 인터넷 선으로 연결 - 네트워크는 ip주소로 장치의 주소를 관리한다. (공인 ip와 사설 ip로 나뉜다) - 하나의 공인ip는 다시 내부의 사설 ip로 나뉜다. 이와 같이 ip주소를 나누기 위해선 네트워크 장비가 필요하다. (라우터,공유기 등) - 공유기기를 보면, WAN포트가 공인 ip가 들어오는 곳이고, 나머지 LAN은 사설 ip를 구성하는 포트이다. - 각 장비는 네트워크 인터페이스를 가지고 있다. 네트워크 인터페이스는 인터넷에 연결하기 위해 컴퓨터에 장착하는 부품 중 하나이다. (NIC,LAN카드) - 네트워크 인터페이스는 ip를 가질 수 있다. 네트워크 인터..
-
Docker - 기본 명령어 모음카테고리 없음 2024. 1. 24. 23:24
- 도커 client, server 버전 및 상태 확인 docker version docker info docker (대분류) command // 대분류 container, image 소분류 run 등 // 대분류는 생략 가능한 경우가 있다. 2. docker 컨테이너 관련 명령어 2.1 컨테이너 실행 및 삭제 // 컨테이너 실행 실행 옵션은 -d (daemon) -p (포트설정) 등등이 있다. docker run (실행옵션) --name 컨테이너명 이미지명 // 실행 중인 컨테이너를 삭제 docker rm 컨테이너명/ID docker run -d -p 80:80 --name mynginx nginx docker rm mynginx docker rm -f mynginx -------------------..
-
Docker (3) - 이미지 빌드Infra/Docker 2024. 1. 24. 23:14
1. 이미지와 레이어 - 도커 이미지는 저장소 공간을 효율적으로 사용하기 위해 레이어드 파일 시스템을 채택 - 레이어드 구조가 재사용에 유리하다. 저장 및 전송에서 스토리지와 네트워크 사용량을 절약할 수 있다. - 또한 변경사항에 있어서 재활용이 유리하다. 동일한 부분은 하나로 공유하고 다른 부분만 가지고 있으면 된다. - 두개의 이미지이지만, html파일을 수정한 것 외에는 모두 동일하다면, 나머지 설정은 공유되고, 변경사항만 기록한다. - 이미지에 한번 저장된 레이어는 변경 불가하다 -> 변경시 새로운 레이어가 생긴다. 2. 이미지 레이어와 컨테이너 레이어 - 컨테이너 실행 중 발생하는 모든 변경 사항은 컨테이너 레이어에 생긴다. - 컨테이너 레이어는 이미지 레이어에 영향을 주지 않는다. 컨테이너별로..
-
Docker(4) - 레지스트리Infra/Docker 2024. 1. 24. 21:26
1. 레지스트리 - 레지스트리는 이미지를 저장하는 공간이다. 프라이빗 레지스트리와 퍼블릭 레지스트리로 나뉜다. - 이미지를 가동시킬 때 로컬에 해당 이미지가 없다면, 레지스트리에서 이미지를 찾아본다. (코드를 저장하는 깃허브를 생각해보자) 2. 이미지 이름 규칙 - 레지스트리주소/프로젝트명/이미지명:이미지태그 - 위와같이 이루어진다. 레지스트리 주소 값은 비어있으면 기본값 (docker.io)가 사용된다. - 프로젝트명은 이미지 관리 폴더명 정도이다. 생략시 가입자명이다. - 태그는 보통 버전정보가 담긴다. jawon.com/project/myImage:2.1.0-alpine docker.io/jangwon/myImage:2.1.0-alpine - 도커에서 지정한 offical 이미지는 위와같은 태그들 ..
-
Docker (2) - 이미지와 컨테이너Infra/Docker 2024. 1. 24. 21:10
1. 이미지 - 일반적으로 프로그램을 실행시키기 위해선 위와 같은 환경이 조성되어야 한다. - 이미지는 특정 시점의 어플리케이션을 구동할 수 있는 환경을 압축하여 저장해 둔 것이다. - 도커를 사용한다는 것은 컨테이너 안에서 특정 소프트웨어를 운영한다는 것이다. - 컨테이너는 이미지를 통해 실행 될 수 있다. - 이미지 자체는 압축파일로 용량만 차지하고, 이를 컨테이너를 통해서 실행하면 cpu,메모리등의 리소스를 사용하기 시작한다. - 비유하자면, 이미지는 게임의 실행 파일이고, 실행 파일을 눌렀을 때 시작되는 프로세스를 컨테이너로 볼 수 있다. - 하나의 이미지에 여러 컨테이너를 실행시킬 수 있다. 컨테이너 실행시 이미지를 복사해 격리된 디스크 공간을 생성한다. * 사용하는 입장에서 컨테이너는 그냥 하..
-
Docker (1) - 가상화 기술Infra/Docker 2024. 1. 24. 20:35
1. 엔터프라이즈 환경에서 구동되는 다양한 서버 - 서버는 일반적으로 하드웨어에서 실행 중인 소프트 웨어를 지칭한다. - 서버는 서버에서 어떤 소프트웨어가 실행되느냐에 따라 나눌 수 있다. (파일공유 소프트웨어(파일서버), RDB 소프트웨어(DB서버) - 서버는 이미 만들어진 소프트웨어를 다운받아 구성되거나, 소스코드로 개발된 애플리케이션 서버가 있다. - 엔터프라이즈 환경에선 다양한 서버가 운영되는데, 운영방식에 따라 베어메탈,하이퍼바이저,컨테이너 형식으로 나눌 수 있다. > 베어메탈: 일반적으로 컴퓨터를 사서 프로그램을 실행한다. 서버 컴퓨터를 구입하고, 여러개의 소프트웨어를 구동한다. > 하이퍼바이저: 하나의 컴퓨터의 리소스를 공유하는 가상환경을 만들고 그 위에서 각각의 서버 소프트웨어를 운용한다...
-
Querydsl (4) - 스프링 데이터 JPA + QuerydslWeb/QueryDSL 2024. 1. 24. 15:35
1. 스프링 데이터 JPA 리포지토리 생성 public interface MemberRepository extends JpaRepository { List findByUsername(String username); } 2. 사용자 정의 리포지토리 - 사용자 정의 인터페이스 작성 (이름 맘대로) - 사용자 정의 인터페이스 구현 (이름 맘대로 -> 원래는 정해져있었음) - 스프링 데이터 리포지토리에 사용자 정의 인터페이스 상속 public interface MemberRepositoryCustom { List search(MemberSearchCondition condition); } public class MemberRepositoryImpl implements MemberRepositoryCustom {..