본문 바로가기

분류 전체보기

(219)
[Docker] Dockerfile에서 RUN과 CMD의 차이점 Docker는 컨테이너화된 어플리케이션을 생성하고 관리하는 데 사용되는 도구입니다. 이 과정에서 Dockerfile이라는 텍스트 문서를 사용하여 컨테이너의 설정과 명령을 정의합니다. Dockerfile 내에서 주로 사용되는 두 가지 지시어는 RUN과 CMD 입니다. 이 두 지시어의 기능과 사용 방법을 이해하는 것은 Docker 이미지를 효과적으로 구축하는 데 매우 중요합니다. RUN 지시어 RUN 지시어는 Docker 이미지가 빌드될 때 실행되는 명령어입니다. 이 지시어는 이미지 내에서 소프트웨어 패키지를 설치하거나 설정을 변경하는 데 주로 사용됩니다. RUN 명령은 새로운 레이어를 생성하고, 해당 레이어 위에 변경사항을 적용합니다. 예시: # Ubuntu 기반 이미지에서 Apache를 설치 FROM u..
[Docker] Dockerfile의 COPY와 ADD 명령어 비교: 언제 어떤 명령어를 사용해야 할까? Docker 이미지를 구축할 때 Dockerfile의 COPY와 ADD 명령어는 파일과 디렉토리를 이미지로 복사하는 데 사용됩니다. 이 글에서는 이 두 명령어의 차이점과 각각의 사용 사례를 살펴보겠습니다. >공식문서 COPY 명령어 COPY 명령어는 Docker 호스트의 파일이나 디렉토리를 Docker 이미지로 복사하는 데 사용됩니다. 이 명령어는 로컬 파일 시스템에서만 작동하며, URL이나 다른 원격 소스에서 직접 파일을 복사할 수는 없습니다. COPY 사용 예시 # Dockerfile COPY ./local_directory /container_directory 이 예시에서 local_directory는 호스트 시스템의 디렉토리이며, /container_directory는 대상 이미지 내의 디렉토리입..
[Docker] Docker 컨테이너에서 호스트 머신의 로컬호스트에 접속하는 방법 (host.docker.internal) Docker를 사용하는 많은 개발자들이 직면하는 일반적인 문제 중 하나는 컨테이너 내부에서 호스트 머신의 로컬호스트에 어떻게 접근하는지에 관한 것입니다. 이 글에서는 Docker 컨테이너 내부에서 호스트 시스템의 로컬호스트에 연결하는 방법을 설명하겠습니다. Docker 네트워크 이해 Docker 컨테이너는 기본적으로 격리된 환경을 제공합니다. 이 때문에 컨테이너는 자체적인 로컬호스트를 가지고, 이는 호스트 머신의 로컬호스트와는 다릅니다. 따라서, 컨테이너 내부에서 localhost 또는 127.0.0.1을 사용하여 호스트 머신의 서비스에 접근하려고 하면 연결되지 않습니다. 호스트 머신에 접근하기 Docker의 특수 DNS 이름 사용 Docker 18.03 버전 이후부터는 host.docker.intern..
[Git] Git 저장소에 빈 디렉토리 추가하는 쉬운 방법: .gitkeep과 .gitignore 활용하기 Git 저장소에 빈 디렉토리 추가하기 Git은 기본적으로 빈 디렉토리를 추적하지 않습니다. 이는 Git이 파일의 변화를 추적하기 때문인데요, 빈 디렉토리에는 추적할 파일이 없기 때문입니다. 그러나 때로는 프로젝트의 구조를 유지하기 위해 빈 디렉토리가 필요할 수 있습니다. 이 글에서는 Git 저장소에 빈 디렉토리를 추가하는 방법을 알아보겠습니다. 방법 1: .gitkeep 파일 사용하기 가장 일반적인 방법은 빈 디렉토리에 .gitkeep 파일을 추가하는 것입니다. .gitkeep은 Git에 의해 공식적으로 인식되는 파일은 아니지만, 이 방법은 널리 사용됩니다. 1. 빈 디렉토리 생성하기: mkdir 폴더명 2. 생성된 디렉토리에 .gitkeep 파일 추가하기: touch 폴더명/.gitkeep 3. .gi..
[Docker] Docker 호스트에서 컨테이너 IP 주소 찾는 쉬운 방법 Docker 컨테이너의 IP 주소 확인하기 Docker는 개발 및 배포 과정을 간소화하는 데 널리 사용되는 컨테이너화 도구입니다. 때때로, 호스트 시스템에서 실행 중인 Docker 컨테이너의 IP 주소를 확인해야 할 필요가 있습니다. 이 글에서는 Docker 컨테이너의 IP 주소를 호스트에서 어떻게 확인하는지 단계별로 설명하겠습니다. Docker 컨테이너 IP 주소 확인 방법 1. Docker 컨테이너 실행 확인 먼저, 실행 중인 Docker 컨테이너가 있는지 확인해야 합니다. 이를 위해 다음 명령어를 사용할 수 있습니다: docker ps 이 명령어는 실행 중인 모든 컨테이너의 목록을 보여줍니다. 2. 컨테이너의 세부 정보 확인 컨테이너의 IP 주소를 얻기 위해서는 컨테이너의 세부 정보를 조회해야 합니..
Git에서 원격 브랜치를 체크아웃하는 방법: 초보자를 위한 가이드 Git은 협업과 버전 관리에 필수적인 도구입니다. 프로젝트에서 여러 사람이 작업할 때, 각자의 작업을 분리된 브랜치에서 진행하고 이를 공유하는 경우가 많습니다. 이 글에서는 원격 Git 브랜치를 로컬로 체크아웃하는 방법을 소개합니다. 1. 원격 브랜치 목록 확인하기 먼저, 원격 저장소에 어떤 브랜치들이 있는지 확인해야 합니다. 이를 위해 다음 명령어를 사용합니다: git fetch git branch -r 이 명령어들은 원격 저장소의 최신 정보를 가져오고, 원격 브랜치 목록을 출력합니다. 2. 원격 브랜치 체크아웃하기 원하는 브랜치를 확인했다면, 해당 브랜치를 체크아웃하여 로컬에서 작업할 수 있습니다. 체크아웃은 다음과 같이 진행합니다: git checkout -b [브랜치명] origin/[브랜치명] ..
[Docker] Docker 사용 중 "권한 거부" 문제 해결하기: 단계별 가이드(Got permission denied 에러 해결) Docker 사용 중 "권한 거부" 문제 해결하기: 단계별 가이드 Docker를 사용하다 보면, docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock라는 오류 메시지를 마주할 수 있습니다. 이는 Docker 데몬에 대한 접근 권한이 없을 때 발생하는 일반적인 문제입니다. 이 글에서는 이 문제를 해결하는 방법을 단계별로 살펴보겠습니다. 문제 이해하기 Docker 데몬은 기본적으로 root 사용자 또는 docker 그룹의 멤버만이 접근할 수 있습니다. 따라서, 일반 사용자가 Docker 명령을 실행하려고 할 때 접근 권한 오류가 발생할 수 있습니다. 해결책 1:..
AWS 데이터베이스 인스턴스 클래스 비교: 스탠다드 vs 메모리 최적화 vs 버스터블 AWS RDS 신청 시 위 사진처럼 인스턴스 구성 시 인스턴스 클래스가 3가지 있습니다.스탠다드 클래스(포함 m 클래스), 메모리 최적화 클래스(r 및 x 클래스 포함), 그리고 **버스터블 클래스(t 클래스 포함)**를 비교하여 어떤 상황에서 어떤 클래스를 사용하는 지 비교해보도록 하겠습니다. 스탠다드 클래스 (m 클래스 포함) 스탠다드 클래스 인스턴스는 균형있게 설계되어 CPU, 메모리, 그리고 디스크 I/O를 제공합니다. 이들은 일반적인 워크로드에 적합하며, 광범위한 데이터베이스 작업을 수행할 수 있습니다. 성능: 스탠다드 클래스는 일반적인 데이터베이스 작업에 대한 좋은 성능을 제공합니다. 용도: 중소규모의 데이터베이스 워크로드에 이상적입니다. 가격: 중간 가격대를 제공합니다. 사용 예시: 회사의 ..
AWS RDS 배포 옵션 정리 - (Multi-AZ Clusters vs Multi-AZ DB Instances vs Single DB Instance) AWS에서 RDS 상품을 신청할 때 위 사진과 같이 가용성 및 내구성 필드에서 배포 옵션을 설정해야합니다. 다중 AZ DB 클러스터 다중 AZ DB 인스턴스 단일 DB 인스턴스 이 세 가지 옵션에 대하여 어떤 차이가 있는지 간단하게 알아보겠습니다. 다중 AZ 클러스터(Multi-AZ Clusters) 특징 >공식문서 다중 AZ 클러스터 방식은 두 개의 Reader DB Instance(읽기 전용 인스턴스)와 한 개의 Writer DB Instance(기존 단일 인스턴스)로 구성되어 있습니다. 각각의 인스턴스를 세 개의 서로 다른 Availability Zone에 배치되어 있습니다. 데이터는 Writer DB Instance로 부터 다른 Reader DB Instance에 반동기식으로 복제됩니다. (공식 ..
[k8s] 쿠버네티스 파드 CPU 및 메모리 체크 방법 쿠버네티스 파드 CPU 및 메모리 체크 방법 소개 쿠버네티스(Kubernetes)는 대규모 컨테이너 관리 플랫폼으로, 파드(Pod)는 쿠버네티스에서 가장 작은 배포 단위입니다. 파드는 하나 이상의 컨테이너를 포함하고, 동일한 호스트에서 실행될 수 있습니다. 이 때문에 파드의 CPU 및 메모리 상태를 모니터링하는 것은 매우 중요합니다. 이번에는 파드의 CPU 및 메모리 상태를 체크하는 방법에 대해서 알아보겠습니다. 방법 1. kubectl top 명령어 kubectl top 명령어를 사용하면 쿠버네티스 클러스터에서 실행 중인 파드의 CPU 및 메모리 사용량을 쉽게 확인할 수 있습니다. # 파드의 CPU 및 메모리 사용량 확인 kubectl top pod # 파드가 실행되는 노드의 CPU 및 메모리 사용량 ..