7-1. Docker Container Storage
·
쿠버네티스/docker
컨테이너 볼륨컨테이너 이미지는 read only (수정 X)컨테이너에 추가되는 데이터들은 별도의 RW 레이어에 저장컨테이너 이미지를 실행하여 하나의 프로세스 상태가 되어도 여전히 read only 상태.단, read/write 레이어가 만들어진 뒤 연결되고, 모든 데이터가 rw 레이어에 쌓임.유니온 파일 시스템 : readonly 레이어에 readwrite 변경사항이 하나인것처럼 보여짐 (=overlay)docker rm 명령어로 컨테이너 삭제 시, ro 와 rw 데이터는 모두 삭제됨 (복원 X)위 케이스를 방지하기ㅏ 위해 컨테이너 볼륨, 데이터 보존 기술이 중요함.데이터 보존 방법컨테이너가 만들어주는 데이터 영구적 보존mysql 컨테이너라는 가정 하에, /var/lib/mysql 안에 수많은 rw 데이..
6-2. 컨테이너 리소스 관리하기.
·
쿠버네티스/docker
컨테이너 부하 테스트 프로그램stress container 생성컨테이너 빌드 : 부하 테스트 프로그램 stress를 설치하고 동작시키는 컨테이너 빌드CPU 부하 테스트 : 2개 cpu core 를 100% 사용하도록 부하 발생stress --cpu 2메모리 부하 테스트 : 프로세스 수 2개와 사용할 메모리만큼 부하 발생 :stress --vm 2 --vm-bytes 메모리 리소스 제한 실습docker run -m 100m --memory-swap 100m stress:latest --vm 1 --vm-bytes 90m -t 5s최대 100mb 사용 가능, swap 메모리 0mb 사용 가능.stress:latest 사용 시, 5초동안 90mb 메모리 부하5초 뒤 작동됨.docker run -m 100m -..
6-1. 컨테이너 관리(하드웨어 리스소 제한 및 컨테이너 모니터링)
·
쿠버네티스/docker
컨테이너 하드웨어 리소스 제한 방법하드웨어 리소스란? 디스크, cpu, 메모리 등을 의미함.컨테이너 하드웨어 리소스 제한 이유기본적으로 컨테이너는 호스트 하드웨어 리소스의 사용 제한을 받지 않음.A컨테이너가 리소스를 많이 사용하게 되면, 다른 컨테이너에서는 리소스를 적게 사용할 수밖에 없음.컨테이너가 필요로하는 만큼의 리소스만 할당.docker command를 통해 제한할 수 있는 리소스CPUMemoryDisk I/Odocker run --helpMemory 리소스 제한옵션의미--memory, -m컨테이너가 사용할 최대 메모리 양을 지정.--memory -swap컨테이너가 사용할 스왑 메모리 영역에 대한 설정.메모리 + 스왑. 생략 시 메모리의 2배가 설정됨--memory -reservation--mem..
5-2. Docker 컨테이너 사용하기
·
쿠버네티스/docker
컨테이너 이미지 관리 명령어 사용하기docker search [옵션] NAME : 이미지 이름`/` 앞의 이미지 이름 : 레파지트리 (특정 커뮤니티 or vendor or 각 유저)DESCRIPTION : 설명STARS : 별점 개수OFFICIAL : 공식 이미지 (가급적 official 로 다운로드받기)AUTOMATED : ddocker file 으로부터 이미지 자동 builddocker pull [옵션] 태그명 생략 시, latest 버전으로 다운로드 됨태그명 지정 시, 해당 버전으로 다운로드 받음 (docker pull nginx:1.14)docker images--no-turunc : IMAGE ID 전체 노출docker inspect [옵션] docker rmi [옵션] 컨테이너 실행 및 운영..
5-1. 컨테이너 사용하기
·
쿠버네티스/docker
컨테이너 이미지 사용 방법이미지 검색 : docker search [옵션] ex) docker search nginx이미지 다운로드 : docker pull [옵션] ex) docker pull nginx:1.14다운받은 이미지 목록 출력 : docker images다운받은 이미지 상세보기 : docker inspect [옵션] ex) docker inspect nginx이미지 삭제 : docker rmi [옵션] 컨테이너 실행 및 종료 명령어컨테이너 생성 : docker create [옵션]  ex) docker create --name webserver nginx:1.14다운로드 받은 컨테이너 이미지를 컨테이너 애플리케이션으로 실행예시에서 --name webserver 을 통해 nginx:1.14 ..
4-2. 컨테이너 보관 창고
·
쿠버네티스/docker
hub.docker.com 에 컨테이너 업로드 및 다운로드docker search [검색어] : dockerhub에서 이미지 검색docker pull [이미지명:버전] : docker hub 에서 이미지 다운로드docker images (docker image ls) : 다운로드받은 이미지 확인container 을 repository에 업로드docker login : 로그인 (docker logout 하기전까지 login상태 유지)컨테이너 이름에 tag 작성 (id 명)docker push : dockerhub에 이미지 업로드tag가 없는 경우, 거절됨tag가 있는 경우, 정상 업로드됨결과 확인 (https://hub.docker.com/)Private REgistry 운영하기private registr..
4-1. 컨테이너 보관 창고
·
쿠버네티스/docker
컨테이너 보관창고(Registry)Registry : 여러 형태의 컨테이너 이미지가 저장되어있는 저장소Docker hub : hub.docker.com퍼블릭한 컨테이너 이미지가 많이 저장되어있는 registryprivate Registry : 사내의 컨테이너 저장소 (보통 회사에서 자주 쓰임)docker hub(registry) 사용 방법https://hub.docker.com/image 종류Official Images : docker.com 이 직접 관리하는 이미지, 누구나 사용 가능.Verified Publisher : official 이미지 외, vendor 가 제공하는 컨테이너 이미지.etc.이미지 검색 : $ docker search "keyword"Private Registry 구축regist..
3-2. 도커 컨테이너 만들어보기
·
쿠버네티스/docker
nodejs 애플리케이션 컨테이너 만들기 : hellojs디렉토리 생성hello.js 파일 준비const http = require('http');const os = require('os');console.log("Test server starting...");var handler = function(request, response){ console.log("Received request from " + request.connection.remoteAddress); response.writeHead(200); response.end("Container Hostname: " + os.hostname() + "\n");};var www = http.createServer(handler);www.lis..