[K8s] minikube 란 무엇인가? macOS에서 설치하는 방법 알아보기
·
Kubernetes
minikube가 필요한 이유Minikube는 로컬 환경에서 Kubernetes(K8s) 클러스터를 실행할 수 있도록 도와주는 도구로, 이를 사용하면 Kubernetes 애플리케이션을 테스트 하기 위해 클라우드 환경을 사용하는 대신 로컬 환경을 사용할 수 있다.이를 사용하면 클러스터를 간단히 실행할 수 있고, 클라우드 기반 Kubernetes 클러스터보다 빠르게 시작하고 재설정할 수 있어 Kubernetes의 학습을 할 때 적합하다. macOS에서 minikube 설치하기1. brew로 minikube 설치하기참고: 공식 문서 brew로 minikube를 설치하기 위해서는 brew install minikube 명령어를 실행하면 된다.brew install minikube brew install mini..
[Docker] 컨테이너와 호스트 머신 간 통신하는 방법 한 번에 정리하기
·
Docker
컨테이너와 호스트 머신 간 통신 시 생기는 문제우리가 로컬에서 여러 애플리케이션을 실행하면, 해당 애플리케이션들과 통신하기 위해 localhost를 사용한다. 하지만, 컨테이너 위에서 실행되는 애플리케이션은 격리된 네트워크망 내부에 있기 때문에 localhost를 사용하면 호스트 머신에서 실행되는 애플리케이션과 통신하지 못한다. 호스트 머신에서 실행 중인 웹 애플리케이션과 Mongo DB의 통신을 생각해보자. Mongo DB가 27017번 포트를 점유해 실행된다고 할 때, 웹 애플리케이션에서 Mongo DB에 접속하기 위해서는 다음 주소를 사용하면 된다.mongodb://localhost:27017/[데이터 베이스 이름] 하지만 컨테이너 위에서 실행 중인 웹 애플리케이션과 호스트 머신에서 실행 중인 Mo..
[Docker] docker network 사용해 컨테이너 간 통신하는 방법 완벽 정리
·
Docker
컨테이너간 통신컨테이너는 외부 애플리케이션 혹은 호스트 머신과는 자유롭게 통신할 수 있지만, 컨테이너 간에는 기본적으로 서로 통신할 수 없다. 컨테이너끼리 통신할 수 있도록 하기 위해서는 컨테이너 내부에 네트워크를 만든 후 통신할 컨테이너들이 같은 네트워크에 속해 있도록 해야 한다. 지금부터 이 방법을 알아보자. Docker의 네트워크 드라이버 종류와 bridge 드라이버Docker는 다양한 네트워크 드라이버를 지원한다. 대표적으로 bridge, host, none 드라이버가 있으며 이 외에도 overlay, macvlan 같은 드라이버가 있다. 하지만, 대부분의 경우는 bridge를 사용해 통신하며 이곳에서는 bridge 드라이버를 사용하는 방법에 대해 다룬다.bridge 드라이버는 Docker의 기본..
[Docker] Dockerfile내부, .env 파일 혹은 터미널을 사용해 환경 변수 설정하는 방법 한 번에 정리하기
·
Docker
Docker의 환경 변수Docker는 컨테이너를 실행하면서 환경 변수를 쉽게 설정하고 관리할 수 있는 방법을 제공한다. 환경 변수는 애플리케이션의 동작을 제어하거나, 민감한 정보(예: 데이터베이스 연결 정보, API 키 등)를 외부에서 주입할 때 유용하며, Docker에서는 이를 Dockerfile내부, .env 파일 혹은 터미널을 통해 설정할 수 있도록 한다. 지금부터 각 방법을 살펴보자. Docker 환경 변수 설정하기Dockerfile에 설정하기Dockerfile에 환경 변수를 설정하기 위해서는 다음과 같이 사용하면 된다.ENV [KEY] [VALUE] 예를 들어 PORT라는 환경 변수를 8080으로 설정하고 싶은 경우 다음과 같이 사용하면 된다.# 환경변수 설정ENV PORT=8080 .env ..
[Docker] .dockerignore 사용해 컨테이너에 복사되지 말아야 할 파일 정의하기
·
Docker
.dockerignore을 사용하지 않을 때의 문제점앞선 글 에서 만들어진 컨테이너 내부를 보면 다음과 같은 파일들이 추가된 것을 볼 수 있다. 이 중 build 폴더와 .git 폴더 그리고 .idea 폴더는 내부에서 자동으로 생성되거나 스프링 앱을 실행하는데 전혀 사용되지 않는 폴더들로 컨테이너로 복사하지 않아도 된다. 이런 폴더들을 복사하지 않기 위해 Dockerfile에서 COPY를 사용할 때 세밀하게 제어해도 괜찮지만, 가장 좋은 방법은 .dockerignore 파일을 사용하는 것이다. .dockerignore 사용해 복사되지 말아야 할 파일과 폴더 정의하기.dockerignore는 git의 .gitignore과 매우 비슷하다. 단순히 내부에 컨테이너로 복사되지 말아야 하는 경로나 파일을 추가하면..