분류 전체보기
-
도커 여덟번째프로그래밍/Docker 2024. 1. 16. 15:51
도커는 컨테이너의 rootfs(/) 영역의 개별 공간 할당 제한을 위해 --storage-opt 옵션을 제공한다. 하지만 이 옵션을 사용하기 위해서는 해당 디스크 파티션이 xfs로 지정되어있어야 하며, 추가기능에서 pquota (project quota) 가 설정되어 있어야한다. /etc/default/grub 에서 rootflags=uquota,pquota 추가 /etc/fstab 에서 default,pquota 추가 후 reboot 모든 컨테이너의 rootfs (/) 용량 제한을 하기 위해선 docker daemon에 제한설정을 하면 된다. sudo vi /etc/docker/daemon.json { "insecure~~:": [~~], "log-driver": "~~", "log-opts": { "..
-
도커 일곱번째프로그래밍/Docker 2024. 1. 15. 21:19
docker volume 에 대한 이해 - 도커에서 제공하는 볼륨은 컨테이너 어플리케이션에서 생성되고 사용되는 데이터를 유지, 보존하기 위한 매커니즘 제공 컨테이너가 삭제되더라도 볼륨은 독립적으로 운영되기 때문에 데이터를 유지함 - 볼륨 기술은 도커 호스트OS와 컨테이너에서 직접 접근이 가능 - 컨테이너 내부의 데이터는 컨테이너 생명주기와 연관되어 컨테이너 종료 시 삭제되지만, 이를 계속 보존하기 위한 방법으로 볼륨 기술을 사용 도커에서 제공하는 3가지 볼륨 기술 1. bind mount 2. docker volume 3. tmpfs mount 1. bind mount - 특정 디렉토리를 연결하는 방법 (파일도 가능) - "호스트 파일 시스템 절대경로" : "컨테이너 내부경로" 로 직접 마운트하여 사용 ..
-
도커 여섯번째프로그래밍/Docker 2024. 1. 15. 02:55
사용자 정의 도커 네트워크 - 도커는 기본적으로 호스트OS와 브리지 연결. --net 옵션을 통해 네트워크 설정 가능 - docker network create로 사용자 정의 브리지 네트워크 생성 - 사용자 정의 네트워크에 연결하면 컨테이너는 컨테이너 이름이나 IP로 서로 통신가능 docker network host를 쓸 경우 기존에 -p로 포트를 연결한 경우에는 도커-프록시를 이용했지만, 이경우에는 호스트 OS에 직접 PID를 할당받아 서비스하기 때문에 포트포워딩이 없고, 도커0를 사용하지 않음. 그래서 컨테이너에 별도의 IP가 부여되지 않는다. docker netwrok create 사용자 정의 네트워크 구성을 통해 컨테이너 이름으로 통신이 가능 docker DNS에 의한 Service Discove..
-
도커 다섯번째프로그래밍/Docker 2024. 1. 14. 20:04
도커 네트워크 도커네트워크는 커널의 네트워크 스택의 하위, 상위에는 네트워크 드라이버를 생성한다. 도커 네트워크 = 리눅스 네트워크라고 볼 수 .있다 도커 네트워크 아키텍처는 CNM(Container Newworking Model) 이라하는 인터페이스 위에 구축한다. 그래서 OS 및 인프라에 구애받지 않고 구축할 수 있다. CNM (Container Newworking Model) CNM은 립네트워크를 통해 모델이 구현된것. 도커 엔진을 통해 립네트워크를 관리하며, 도커네트워크는 브리지 네트워크이므로 도커엔진을 통해 관리가 된다. 리눅스 네트워킹 빌딩 블록 리눅스 브리지 네트워크 네임스페이스 veth pair 및 iptables 복잡한 네트워크 정책을 위한 전달규칙, 네트워크 분할 및 관리도구 제공 리눅..
-
도커 네번째프로그래밍/Docker 2024. 1. 14. 02:50
docker container CLI 컨테이너 격리기술 컨테이너 CLI 작업이 수행될때는 -i 와 -t를 붙여 -it 라는 옵션을 많이 사용 --restart always 를 사용하면 예기치못한 종료에도 다시 재실행됨. (쿠버네티스는 restart always가 기본값) docker exit code 0과 143은 정상종료 docker attach 와 exec의 차이 attach는 내부에서 돌아가는 로그, 실제 수행되는 작업의 정보를 출력할 때 사용 exec는 내부에 들어가서 무언가 작업을 수행할 때 사용 docker import 시에 export로 만들어진 이미지는 단순히 컨테이너의 파일시스템을 아카이빙해서 만든 이미지이기 때문에 컨테이너 run 후 실행할 명령(CMD)이 요구된다. 해결방법은 아래처럼..
-
코인 획득 로직 구현에 대한 고민스파르타코딩클럽/최종프로젝트 - DevQuiz 2024. 1. 10. 23:23
Dev Quiz에서 문제를 풀었을때 얻는 리워드들을 구현하는 역할을 맡게 되어 로직에 대한 고민이 많았다. 그동안은 간단한 CRUD에서 파생된 기능들만을 구현했으나 이번엔 전혀 다른 느낌이라 생각보다 첫 시도가 어려웠다. Quiz를 풀면 랭킹에 적용되는 score와 재화를 구매(미구현)할 수 있는 coin을 지급받게 된다. 문제를 풀 때마다 둘 다 같은 양을 지급받게 되도록 설계하였다. 그래서 enum으로 관리하기로 하였으며 FIRST : 매일 첫문제를 풀면 20 CORRECT : 그 후 문제를 풀어 정답일 경우 10 FAIL : 문제를 풀어 틀렸을 경우 5 PASS : 문제에 정답을 체크하지 않고 그냥 넘겼을 경우 0 으로 계산하였다. 구현방식은 처음엔 2가지(Switch, Map) 만 고려하였으나, ..
-
mvc패턴 / PK, FK / HTTP 메서드오늘/기술면접주제 2024. 1. 9. 09:56
mvc 패턴의 개념 MVC는 모델 뷰 컨트롤러로 구성되며 컨트롤러는 사용자의 요청을 받아 모델로 전달한다. 모델은 비즈니스로직을 사용하여 데이터를 저장 그 후에 뷰를 통해 사용자에게 전달한다. Primary Key, Foreign Key PK 기본키. 각 컬럼을 구분하는 유일한 키. null값과 중복이 불가능. 후보키들 중 메인인 하나의 키. 유일성과 최소성을 가짐 FK 외래키. 테이블간 관계를 나타낼 때 사용. 다른 테이블의 PK를 참조하여 FK로 사용함. 데이터 무결성을 위해 FK를 사용 HTTP 메서드의 개념과 특징 http는 요청 메서드를 정의하고, 수행되길 원하는 행동을 나타낸다. 자주 쓰이는 5가지를 설명해보자면 GET : 특정 리소스를 가져올 때 사용. 데이터를 받기만 함 POST : 서버에..