docker
Docker 리소스 제약 (Resource constraints) 에 대하여
Docker 리소스 제약 (Resource constraints) 에 대하여
2024.10.25기본적으로 container resource 는 제약이 없으며 호스트의 커널 스케줄러가 허용하는 한계치 까지 주어진 리소스를 최대한 사용할 수 있습니다. 하나의 machine (Ubuntu) 이 cpu 4 core / memory 8GB 라고 가정했을때 4개의 application 을 실행하고 2개의 application 에 메모리 누수가 있다고 가정했을때 2개 의 application 모두 8GB 까지 메모리를 사용하려고 합니다 해당 상황은 해당 Ubuntu machine 을 shutdown 시키는 결과를 초래 할 수 있고 운영 상황에서는 큰 장애로 이어 질 수 있습니다. 그럼 해당 이슈를 어떻게 우아하게 처리 할 수 있는지 알아 보겠습니다 이 글은 Docker 공식문서를 참고했습니다.https://d..
spring boot jib 를 사용 하여 배포 자동화 하기 (w. github action)
spring boot jib 를 사용 하여 배포 자동화 하기 (w. github action)
2023.03.23jib 란? Jib는 Dockerfile을 사용하지 않거나 Docker를 설치할 필요 없이 컨테이너를 빌드할 수 있도록 도와주는 도구이다. 특히 자바 컨테이너를 빌드하는 데 사용하는 도구이며, Maven과 Gradle 용 플러그인을 이용해 사용할 수도 있고 Jib 자바 라이브러리를 통해 사용할 수도 있다. 적용해보기 build.gradle.kts plugin { ... id("com.google.cloud.tools.jib") version "3.1.2" apply false ... } 버전은 해당 spring boot, kotlin, java 버전에 맞게 설정 이 필요하다. val stage: String? by project // github action 에서 -Pstage=alpha 옵션으로 주입 ..
유용한 도커 명령어 정리
유용한 도커 명령어 정리
2021.10.08컨테이너 이미지 빌드 docker build -t 리포지터리:태그 . 현 디렉터리에 있는 Dockerfile을 바탕으로 이미지를 빌드 docker image build -t 리포지터리:태그 . docker images 로컬 이미지 목록 docker image ls docker rmi 이미지 docker image rm 이미지 docker rmi -f ‘docker images -aq’ 로컬 이미지 삭제 docker image prune -a 로컬 이미지 일괄 삭제 이미지의 이동과 공유 docker pull 원격_리포지터리[:태그] docker image pull 원격_리포지터리[:태그] ocker tag 이미지[:태그] 원격_리포지터리[:태그] docker image tag 이미지[:태그] 원격_리포지터..
Docker full stack - docker file 작성하기
Docker full stack - docker file 작성하기
2021.06.14frontend 개발 환경과 운영 환경 구분하기 개발환경과 운영환경을 구분하기 위해 Dockerfile , Dockerfile.dev 를 만듭니다. Dockerfile.dev FROM node:alpine WORKDIR /app COPY package.json ./ RUN npm install COPY ./ ./ CMD ["npm", "run", "start"] 운영환경에서 nginx 설정 정적 파일을 제공해주기 위한 Nginx를 위해서 frontend 안에 nginx 폴더 생성하고 default.conf 파일 생성 default.conf server { # nginx 가 listen 하고 있는 port 번호 listen 3000; location / { # html 파일이 위치할 루트 설정 root /..
Docker fullstack - Node Js 구성하기
Docker fullstack - Node Js 구성하기
2021.06.14구성 node.js react.js postgres nginx docker-fullstack 폴더를 만든뒤 backend 폴더를 만들어줍니다. /backend/package.json npm init -y package.json 파일 만들기 { "name": "backend", "version": "1.0.0", "description": "", "main": "server.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "start": "node server.js", "dev": "nodemon server.js" }, "keywords": [], "author": "", "license": "ISC", "dependenc..