일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- CSS
- 리액트
- 파이썬
- 블록체인
- 이더리움
- 이슈
- BFS
- 웹
- k8s
- 백엔드
- 알고리즘
- es6
- 자바스크립트
- kubernetes
- react
- JavaScript
- AWS
- 타입스크립트
- 프론트엔드
- 클라우드
- TypeScript
- docker
- 백준
- HTML
- VUE
- 컴퓨터공학
- 쿠버네티스
- 솔리디티
- next.js
- 가상화
- Today
- Total

목록📖 docker (5)
즐겁게, 코드

본 포스트는 Google Cloud Tech의 영상 내용을 정리하면서 작성한 글입니다. 이번 글에서는 네임스페이스를 통해 소스를 분리하는 방법을 소개합니다. 네임스페이스란? 쿠버네티스의 네임스페이스란 한 클러스터 내에서 격리된 개발 환경을 제공하는 방법입니다. 즉 네임스페이스는 "클러스터 안의 클러스터" 라고 생각할 수 있으며, 이를 통해 리소스들을 원하는 그룹으로 묶거나 성능을 최적화하는데 도움을 줄 수 있습니다. 예를 들어 개발용 환경과 배포용 환경을 따로 구축하고 싶다면 클러스터를 둘 생성할 필요 없이, 개발용 네임스페이스와 배포용 네임스페이스를 구성하는 것으로 개발 환경을 분리할 수 있게 됩니다. 네임스페이스 생성 & 사용하기 네임스페이스는 kubectl create namespace 커맨드를 사..

본 포스트는 Google Cloud Tech의 영상 내용을 정리하면서 작성한 글입니다. 이번 글에서는 쿠버네티스의 좋은 습관 중 하나인 작은 이미지를 활용하는 방법을 소개해보려 하는데요, 이미지 크기를 작게 유지하는 것은 가장 기본적이면서도 효과적인 방법 중 하나입니다. 테스트용 go 어플리케이션 package main import "fmt" func main() { fmt.Println("hello world") } 이미지 빌드용 도커파일 예시 FROM golang WORKDIR /app COPY ./* . RUN cd /app && go build CMD go run hello 그런데 콘솔에 "hello world" 를 출력하는 정말 간단한 코드조차 빌드하면 자그마치 1GB에 달하는 이미지가 생성되..

빌드한 이미지를 도커허브에 배포하려 했는데, 도커허브에는 반드시 / 의 형태로 이미지를 푸시해야 한다는 점을 알 수 있었습니다. 그런데 굳이 이것 때문에 이미지를 새로 빌드하는 것은 비효율적인 것 같아 간단히 이미지 이름만 변경하는 방법을 공유해보려 합니다. tag 커맨드 docker image tag 커맨드를 사용하면 기존 이미지를 참조하면서 새로운 이름을 갖는 이미지를 생성할 수 있습니다. 도커허브에 푸시하기 위해, / 형태로 새로운 이미지를 생성해 보겠습니다. 이렇게 기존 이미지명에 제 도커허브 아이디를 붙인 새로운 이미지를 생성했습니다. 이제 로컬에 이미지가 존재하지 않는다는 에러 없이, 푸시가 잘 수행되는 모습입니다. 🙂

한번쯤 이미지를 빌드해 보신 분들이라면, 이미지 사이즈가 적게는 수십 ~ 많게는 몇백 메가바이트에서 기가바이트 단위까지 넘나드는 것을 보셨을 것입니다. 물론 가상 머신에 OS와 어플리케이션을 올린 것보다는 가볍겠지만 단순한 어플리케이션 하나가 수백 메가를 차지하는 걸 보면 뭔가 억울한데요, Distroless 라는 구글에서 관리하는 베이스 이미지를 사용하면 일부 환경의 어플리케이션 이미지를 더욱 가볍게 제작할 수 있습니다. 이번 글에서는 Node.js의 Distroless 베이스 이미지를 사용해 간단한 이미지를 제작해보고, 기존 Node.js 베이스 이미지를 사용했을 때보다 얼마나 용량을 절약할 수 있는지 알아보도록 하겠습니다. 멀티 스테이징 빌드 Distroless 이미지가 용량을 절약하는 원리는 운영..

이미지에 파일을 하나 추가했다고 해서 처음부터 수백 메가에 달하는 파일을 다시 다운받는다면 굉장히 비효율적일 것입니다. 하지만, 도커 데몬은 레이어 를 활용해 이미지를 빌드할 때 파일이 추가되거나 변경될 때마다 해당 동작을 캐시합니다. 오늘은 도커파일을 잘 작성해 레이어의 캐싱을 최대화하고, 이를 통해 이미지 빌드 속도를 최적화하는 팁을 소개해보려 합니다. 이미지 생성하기 간단한 node.js 어플리케이션 하나를 이미지로 만들어 보겠습니다. 코드는 다음과 같습니다. const express = require('express'); const app = express(); app.get('/', (req, res) => { res.send(` 간단한 node.js 어플리케이션입니다. `); }) app.li..