본문 바로가기

전체 글

7-2 컨테이너 리소스를 관리해야지 -실습편 1.컨테이너 리소스 제한 stress container 생성 CPU 부하테스트: 2개 CPU core를 100% 사용하도록 부하 발생: stree --cpu 2 메모리 부하테스트: 프로세스 수 2개와 사용할 메모리만큼 부하 발생:stress --vm 2 --vm-bytes vi Dockerfile 생성 후 FROM debian MAINTAINER Seunghan Lee RUN apt-get update; apt-get install stress -y CMD ["/bin/sh", "-c", "stress -c 2"] 해당코드를 삽입후 docker build . -t stress 명령어를 입력한다.image 파일이 생김 REPOSITORY TAG IMAGE ID CREATED SIZE stress lates.. 더보기
7-1 컨테이너 리소스를 관리해야지 -이론편 1.컨테이너 하드웨어 리소스 제한 어떻게 해요 ? 기본적으로 컨테이너는 호스트 하드웨어 리소스의 사용 제한을 받지 않는다. docker command를 통해 제한할수 있는 리소스 -cpu -memory -disk i/o docker run --help docker를 사용하다보면 메모리이슈가 많이생긴다고 한다. 그 이유는 무엇일까 ? 도커 컨테이너를 실행할 때 해당 컨테이너는 호스트 운영 체제에서 분리된 프로세스로 실행됩니다. 이 프로세스는 호스트 운영 체제의 리소스를 공유하지만, 가상화된 환경 내에서 독립적으로 실행됩니다. 이러한 가상화된 환경은 각 컨테이너마다 필요한 패키지와 라이브러리 등을 별도로 가지고 있으므로, 메모리 사용량이 높아질 수 있습니다. 도커 이미지를 빌드할 때 사용되는 Dockerfi.. 더보기
6-2 Docker 컨테이너 사용하기 -실습편 1. MySQL Docker 이미지 다운로드 다음 명령어로 MySQL Docker 이미지를 다운로드한다. 태그에 버전을 지정하지 않으면 최신 버전을 다운로드한다. $ docker pull mysql Using default tag: latest latest: Pulling from library/mysql bb79b6b2107f: Pull complete 49e22f6fb9f7: Pull complete 842b1255668c: Pull complete 9f48d1f43000: Pull complete c693f0615bce: Pull complete 8a621b9dbed2: Pull complete 0807d32aef13: Pull complete a56aca0feb17: Pull complete de.. 더보기
6-1 Docker 컨테이너 사용하기 -이론편 Q1.컨테이너 이미지를 어떻게 사용해요 ? create 명령어: 컨테이너화만 시켜주는 역할을함 docker start webserver :webserver 실행 docker ps: 현재컨테이너들의 상태를 확인 docker inspect webserver : 컨테이너를 더욱 자세히 보기위함 docker stop webserver: 컨테이너 중지 docker rm webserver: 컨테이너 삭제 Q2.컨테이너를 실행하고 종료하는 명령을 알고 싶어요 도커 라이프사이클 pull ->create->start run run nginx라고 가정을 하자 그럼 로컬에서 nginx 를 search 를 합니다. 만약 search를 통해 해당하는 nginx를 못찾는다음 docker hub에서 pull받습니다. 그다음 cre.. 더보기
curl이란 ? CURL 이란 ? cURL =Client URL을 의미한다. 클라이언트에서 커맨드 라인이나 소스코드로 손 쉽게 웹 브라우저 처럼 활동할 수 있도록 해주는 기술 (커맨드라인 Tool 혹은 라이브러리) 서버와 통신할 수 있는 커맨드 명령어 툴이다. 웹개발에 매우 많이사용되고 있는 무료 오픈소스, curl의 특징으로는 많은 프로토콜을 지원한다. 다양한 프로토콜 HTTPS,FTP,SMTP 등 다양한 프로토콜을 이용하여 데이터를 전송할 수 있다. CURL 사용법 '-X'은 HTTP 메소드를 설정 '-H'는 HTTP 헤더를 설정 '-d'는 리퀘스트 바디를 설정 '-o'는 응답 결과를 파일로 저장 '-F'는 파일 업로드 '-u'는 인증 정보 설정 '-b', '-c'는 쿠키 설정 curl 을 이용하여 여러가지 기능을 .. 더보기
MYSQL 조회시 FLOW MySQL 조회시 플로우 아래는 MySQL 서버에 조회를 요청 했을 때 flow chart입니다. 여기서 client는 쿼리를 요청한 클라이언트, 즉 SQL을 입력한 개발자입니다. Query Cache SQL문이 key, 결과가 value인 맵입니다. 데이터가 변경되었으면 쿼리캐시가 삭제되어야겠죠?(조회 결과가 달라질 것이기 때문에) 이는 동시 처리 성능 저하를 유발하고, 버그의 원인이 되어 MySQL 8.0 버전부터는 삭제되었습니다. Parsing 사용자가 요청한 SQL을 잘게 쪼개어 서버가 이해할 수 있는 수준으로 분리합니다. Preprocessing 해당 쿼리가 문법적으로 틀린지 확인하여 부정확하면 처리를 중단합니다. (흔히 만나보는 syntax 에러는 parser와 preprocessor에서 발생.. 더보기
5-1 컨테이너 보관창고-이론실습편 1.컨테이너 보관창고가 있어요 ? Registry: 컨테이너 이미지를 저장하는 저장소 Docker Hub:hub.docker.com private Registry: 사내의 컨테이너 저장소 2.docker hub(registry)를 사용하고 싶어요. image 종류: offical images, Verified Publisher,etc 이미지검색: docker search "keyword" 3. private Registry를 구축하고 싶어요 docker run -d -p 5000:5000 --restart always --name registry registry:2 5-2실습내용을 밑에 더 추가해서 넣자 ... 5-1을 별로 쓸게없네 .. 실습편 Repository 운영하기 1.hub.docker.com.. 더보기
4-2 도커 컨테이너 만들어보기:실습편 1.Node js 어플리케이션 컨테이너 만들기 :Hello.js mkdir hellojs cd hellojs/ cat > hello.js 소스코드 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.. 더보기