728x90
반응형
시작하기에 앞서, 컨테이너와 이미지를 모두 삭제하는 명령어를 짚고 넘어가겠다.이전에 실습하던 컨테이너와 이미지들이 있다면, 다음과 같은 명령어를 통해 삭제하여 정리하는 것을 추천한다.0. 컨테이너와 이미지 모두 삭제도커 환경에서 사용하지 않는 컨테이너와 이미지를 삭제하는 과정이다. 이를 통해 저장 공간을 확보하고, 불필요한 리소스를 정리할 수 있다.모든 컨테이너 중지:이 명령어는 현재 실행 중인 모든 컨테이너를 중지시킨다.docker stop $(docker ps -a -q)모든 컨테이너 삭제:중지된 모든 컨테이너를 삭제한다. 실행 중인 컨테이너는 삭제할 수 없기 때문에, 먼저 중지해야 한다.docker rm $(docker ps -a -q)모든 이미지 삭제:모든 도커 이미지를 삭제하는 명령어다. 삭제할..
Docker-Compose1. 개요도커 컴포즈는 공통적인 목적을 갖는 애플리케이션 스택을 YAML 형식으로 정의하고, 이를 실행하기 위한 다중 컨테이너 관리 도구이다.애플리케이션 스택의 공통성은 동일한 목표를 달성하기 위해 협력하는 다양한 애플리케이션 구성 요소를 말한다. 예를 들어, 웹 애플리케이션을 만들 때 일반적으로 3-Tier 구조를 사용하는데, 데이터베이스로 MySQL이나 Oracle을 사용하고, API 애플리케이션을 위해 백엔드를 Flask, FastAPI, 또는 Node.js로 구성하며, 사용자 인터페이스(UI)로는 React나 Vue.js를 사용하게 된다. 이 세 가지 애플리케이션은 공통적인 목표를 위해 협력한다고 볼 수 있다.위와 같은 애플리케이션 스택을 도커 컴포즈를 통해 YAML 파일..
Private Registry1) 개요Docker Hub는 기본적으로 public 저장소를 제공하여 누구나 저장소 주소를 알고 있으면 접근이 가능하다. 하지만 Docker Hub에서도 1개의 private 저장소를 무료로 제공하며, 추가적인 private 저장소는 유료이다.Docker Hub는 private registry 구축을 위해 registry라는 이미지를 제공하며, 이를 컨테이너로 실행하여 이미지를 저장할 수 있다. 단, 기본적으로 텍스트 기반의 레지스트리 관리만 제공하기 때문에 웹 인터페이스를 통해 이미지를 검색하려면 별도의 GUI 컨테이너를 결합해야 한다.2) Private Registry 만들기 및 이미지 저장registry 이미지 조회Docker Hub에서 private registry ..
0. 컨테이너 및 이미지 삭제모든 컨테이너 중지: docker stop $(docker ps -a -q)모든 컨테이너 삭제: docker rm $(docker ps -a -q)모든 이미지 삭제: docker rmi $(docker images -q)1. 빌드 의존성 제거와 다단계 빌드1) 개요다단계 빌드는 FROM 명령을 사용하여 여러 빌드 단계를 생성하고, AS를 통해 각 단계에 이름을 부여하여 사용할 수 있는 방식이다. 이를 통해 각 단계에서 생성된 결과물 중 애플리케이션 실행에 필요한 데이터만 가져와 이미지를 경량화할 수 있다. 다단계 빌드를 사용하면 모든 빌드 의존성을 하나의 환경에 포함시키므로, 최종 이미지에서 불필요한 빌드 의존성을 제거할 수 있다.2) Go 애플리케이션 다단계 빌드 예제디렉토..
1. IaC & DockerfileIaC가 필요한 이유명령어 기반으로 인프라를 구성할 때 사용자 실수와 같은 인적 오류 가능성이 높다.이러한 오류 가능성을 줄이기 위해 인프라 구성을 코드로 관리할 수 있는 IaC(Infrastructure as Code)를 사용한다.2. 최적의 Dockerfile 작성법경량의 컨테이너 서비스 제공: 불필요한 파일이나 라이브러리를 최소화하여 경량 컨테이너를 제공한다.레이어 최소화: Dockerfile의 레이어 수가 많아지면 빌드 시간이 늘어나고 이미지가 커질 수 있다. 불필요한 레이어를 줄여 효율을 높인다.하나의 애플리케이션, 하나의 컨테이너: 단일 컨테이너에 하나의 애플리케이션만 실행하도록 구성하는 것이 좋다.캐시 활용: 캐시 기능을 활용해 중복된 빌드 작업을 피할 수 ..
1. Docker Network1.1 개요도커 컨테이너 및 서비스는 도커 네트워크를 통해 서로 격리된 상태에서도 연결할 수 있으며, 외부 애플리케이션과도 네트워크 연결이 가능하다.도커 네트워크는 다양한 네트워크 드라이버를 사용해 설정되며, 컨테이너 간의 통신뿐만 아니라 도커 외부와의 통신도 지원한다.별도의 네트워크 설정 없이 컨테이너를 생성하면 기본적으로 docker0라는 브릿지 네트워크에 연결되고, 이 네트워크는 172.17.0.0/16 CIDR 범위 내에서 IP 주소를 자동 할당한다.컨테이너가 생성될 때, eth0 인터페이스에 172.17.0.2와 같은 IP 주소가 할당되며, 이를 통해 네트워크 통신이 이루어진다.네트워크 인터페이스 확인 방법: ifconfig docker0ifconfig 명령어가 없..