도커는 컨테이너 기술컨테이너를 생성하고 관리하기 위한 도구컨테이너 - 표준화된 소프트웨어 유닛(코드 패키지, 해당 코드를 실행하는데 필요한 종속성과 도구가 포함되어 있다.) 피크닉 바구니 안에는 필요한 모든게 다 들어있다. 그걸 들고가면 친구도 똑같이 갈 수 있다.st
모든 가상 머신은 실제로 우리 머신 위에서 실행되는 stand-alone 컴퓨터와 같다.따라서 이러한 머신이 여러 대 있는 경우 매번 새로운 컴퓨터를 머신 내부에 설치해야 한다. 또한 메모리 cpu 및 하드 드라이브의 공간을 낭비한다.\-> 시스템에 가상 머신이 점점
virtualbox -> ubuntu -> 설치 ->
컨테이너애플리케이션, 웹사이트, 노드 서버, 애플리케이션 실행 전체 환경등 무엇이든 포함하는 작은 패키지컨테이너에 소프트웨어 실행 유닛이 존재이미지이미지는 템플릿, 컨테이너의 블루프린트코드와 코드를 실행하는데 필요한 도구를 포함한다.그 다음 컨테이너가 실행되어 코드를
이미 존재하는 이미지 사용ex) docker run node자동으로 hub에서 최신 이미지를 가져옴실행중인 프로세스 확인해보기docker ps -a도커에게 컨테이너 내부에서 호스팅 머신으로 대화형 세션을 노출하고 싶다고 알린다.docker run -it node
이미지로 만들면 만드는 당시에 스냅샷이 찍혀서 코드 수정해도 적용이 안된다.
컨테이너 중지 docker ps - 실행중인 컨테이너 확인 docker stop 이름 - 중지
그냥 run으로 실행하면 입력이 안되기 때문에 -it옵션을 준다.docker run -it 이름실행이 끝나면 자동으로 종료된다.만약 끝나고 다시 컨테이너를 실행해서 결과를 입력하고 싶다면?docker start -a -i 이름
docker rm실행 중인 컨테이너는 제거 불가능docker images -> 이미지 목록 출력docker rmi -> 한개 삭제docker image prune -> 사용하지 않는 이미지 삭제\--rm
폴더 구조도 필요함구조가 완성되어 있음추가 코드 필요 없음빌드 단계 불필요
호스팅 시스템 파일 시스템에서 분리된 자체 내부 파일 시스템이 있다. -> 해당 이미지를 기반으로 도커 컨테이너를 시작하면 그 이미지 위에 read-write 레이어로 컨테이너가 추가된다.컨테이너를 삭제하면 저장된 파일도 함께 삭제된다.copy는 일회성 스냅샷볼륨은 컨
도커 이미지가 생성될 때 현재 폴더의 스냅샷만 복사한다.(현재 폴더 구조 복사) 따라서 미래 변경 사항은 이미지에 반영되지 않는다.호스트 머신의 파일 시스템 상의 볼륨이 어디에 있는지 위치를 알 수 있다.우리가 직접 위치를 지정컨터이너는 볼륨에 쓸 수도 있고 읽을 수도
docker run -v /app/data...익명 볼륨은 컨테이너에 연결된 일종의 볼륨을 생성컨테이너가 제거되면 볼륨 삭제컨테이너를 종료하고 다시 시작해도 컨테이너가 제거되면 익명 볼륨도 제거컨테이너 간에 데이터 공유 불가능컨테이너에 이미 존재하는 특정 데이터를 잠그
바인드 마운트를 이용하면 변경한 소스코드가 실시간으로 적용된다. 하지만 컨테이너는 로컬에 있는 파일을 변경할 수 없어야 한다. 따라서 바인드 마운트를 읽기 전용으로 바꿔야함.default : read-write방법 : \`-v 절대경로:경로:ro'
도커는 빌드 타임 인수와 런타임 환경 변수를 지원한다.Dockerfile에서 특정 Dockerfile 명령으로 다른 값을 추출하는데 사용할 수 있는 유연한 데이터 비트, 즉 변수를 설정할 수 있다.docker build를 실행할 때 --build-arg 옵션과 함께 제
도커 모듈 요약
docker run --network 네트워크이름...\-> IP조회 및 해결 작업을 자동으로 수행볼륨과 달리 네트워크는 도커가 자동으로 생성해주지 않는다.네트워크를 사용하여 컨테이너를 실행하려면 직접 네트워크를 만들어야함.docker network create 네트워
docker build와 docker run 명령을 대체할 수 있는 도구오케스트레이션 명령 set도커 컴포즈는 dockerfile을 대체하지 않는다이미지나 컨테이너를 대체하지 않는다컨테이너를 더 쉽게 시작할 수 있게 한다.docker-compose.yaml or .ym
도커 허브에 아이디를 만들고 개인 저장소를 만든다.docker build -t 이름 저장소 이름docker logindocker push 저장소public이미지는 로그인이 필요 없다.docker run -d --rm 저장소
이미지를 다시 빌드 -> push -> run하지만 이전 코드가 계속 나옴.why? 도커가 이미지를 실행할 때마다 그 이미지가 이미 로컬에 있는지 항상 확인한다.docker pull 저장소이름 을 이용하여 이미지를 다시 가져온다.EKS를 이용하는게 편함.
ex) EC2인스턴스를 만들어서 직접 이미지를 빌드하고 배포한다.EC2 인스턴스를 자체적으로 관리하고 구성해야 하며, 그 인스턴스의 소프트웨어와 운영 체제가 업데이트된 상태를 유지하도록 해야 한다.컨테이너가 충돌하거나, 다운될 수 있으며 새 컨테이너로 교체해야 한다.만
pod라는 것에 의해 관리된다.pod는 쿠버네티스에서 가장 작은 단위이다.포드는 하나 이상의 애플리케이션 컨테이너와 이러한 컨테이너에 속한 모든 리소스를 호스팅한다.마스터 노드에서 포드를 추가 삭제포드안에 하나 혹은 여러개의 컨테이너가 있다.워커 노드에 둘 이상의 포드
클러스터\-> 마스터 노드가 있는 클러스터는 실제로 여러 머신에 분산되어 항상 구동되어 실행될 수 있다.마스터 노드가 설정된 클러스터에서 실행되는 하나의 가상 인스턴스가 필요하고 하나 이상의 워커 노드가 필요하다.마스터 노드에는 API 서버와 스케줄러 등이 설치되어야
가장 작은 유닛하나 또는 여러 개의 컨테이너를 포함하고, 실행한다.볼륨과 같은 공유 리소스를 보유한다.다른 pod 혹은 외부와 통신 가능(컨테이너의 일부라서...)클러스터 내부 IP 주소가 있다.(변경 가능)pod안에 여러 컨테이너가 있으면 localhost를 이용해
minikube status -> 클러스터가 실행 중인지 확인 kubectl create deployment 이름 --image=이미지이름 -> 새로운 deployment 객체 생성, pod의 컨테이너에 사용할 이미지를 지정할 때 사용 kubectl get depl
명령을 외워야 한다.항상 반복한다.config 파일을 사용해서 원하는 목표 상태를 정의한다..yml or .yaml 파일 생성, 이름은 마음대로apiVersion은 홈페이지에서 확인kind : Deployment 등 타입? 적기metadata : 이름 적기spec :
볼륨을 컨테이너에 탑재할 수 있다.여러 노드에서 애플리케이션을 실행할 수 있다.다른 클라우드 및 호스팅 프로바이더에서도 실행할 수 있다.다양한 유형의 볼륨 지원데이터가 실제로 저장되는 위치와 관련하여 매우 유연하다.로컬 볼륨을 지원pod가 실행되는 곳은 워커 노드의 폴
pod 및 노드에 대한 독립성을 갖게 되며, 클러스터 관리자로서 이 볼륨이 구성되는 방식에 대한 완전한 권한을 갖게 된다.각각의 pod와 각각의 deployment.ymal 파일 등 이러한 파일에 대해 여러 번 구성할 필요가 없다.한 번만 정의한 다음, 원하는 경우 여