docker 4

Docker Architecture 그림으로 이해하기

도커를 더욱 이해하기 위해서 아래 그림을 직접 그려보았다. Docker 개요 사람들은 왜 도커를 사용할까 도커를 사용하면 복잡한 앱을 여러 컨테이너로 통합하여 실행할 수 있다. (하나로 합치는 것이 아닌 연결된 msa) 추가로 alpine이 붙는 이미를 사용하면 더욱 가벼워진다. vm과 비교를 해보면 VM - 하이퍼바이저 위에 [따로 kernel Space와 User Space만들어줌 ]→ 가상화 컨테이너 - 하이퍼바이저와 Kernel Space 위에 [User Space 만들어줌] → 가상화 무거운 Kernel Space가 컨테이너에는 빠져있기 때문에 이처럼 경량화가 가능하다. 이처럼 커널이 빠질 수 있는 것은 LXC라는 기술 덕분이다. LXC Linux Container 기술을 이용하며 kernel의..

Cloud/Docker 2024.04.09

Docker CPU 제어하기

Docker는 CPU 제한을 하지 않으면 unlimited로 무제한으로 사용한다. 컨테이너에서 제한하면 이에 따라 cgroup이 리소스를 제공한다. CPU Time Scheduling CPU 사용시간 제어 - 기본값은 1024이다. lscpu 위의 커맨드로 현재 hostos의 cpu를 확인할 수 있다. docker run -d --name=cpu-1024 --cpu-shares=1024 leecloudo/stress:1.0 stress --cpu 4 docker run 할 떄 위 처럼 옵션을 주면, cpu 작업 시간을 제한할 수 있다. cpu register에 등록되어 제어가 된다. 위에처럼 stress로 부하테스트를 하면 이렇게 htop에서 cpu가 가득 차는 것을 확인할 수 있다. student@ho..

Cloud/Docker 2024.03.25

도커란? | 가상화, 컨테이너, 도커 개념, 기능

도커란? 도커를 소개하기 전에 먼저 가상화란 개념이 필요하다. 가상화 등장 배경 개발할 때, 서스 운영에 사용하는 서버에 직접 들어가서 개발하지 않는다. Local환경에서 개발하고 완려되면 Staging서버, Production 서버에 배포한다. 개발을 진행한 local 환경과 Production 서버 환경이 다른 경우가 존재한다. 예를 들면 로컬은 윈도운, 서버는 리눅스일 때이다. 또한 로컬 환경과 서버가 같은 OS여도, 환경변수 등에 의해 서버에 올바르게 작동하지 않을 수 있다. 그래서 다양한 설정들을 README 등에 기록하고 항상 실행하도록 한다. 여기서 만약 운영하고 있는 서버가 많다면, 이 중 하나의 서버가 업데이터 되었다면 나머지 서버도 모두 업데이트를 해줘야한다. 이런 상황에서 서버 환경까..

MLOps 2024.01.12

Docker Compose | 여러 컨테이너 관리하기

Docker Compose 이번 포스팅은 도커 컴포즈에 관한 내용이다. 멘토님이 실제 서비스에서는 여러 컨테이너를 띄우기 때문에 docker compose 공부를 추천해주셨다!👍 docker compose란 Docker compose는 compose 파일로 여러 컨테이너를 관리하기 쉽게 해주는 기능이다. 아래 실습 내용들은 도커의 공식 document를 따라 실습 후, 작성하였다. installation 우선 나는 Docker desktop을 설치하였다. 이 경우 docker-compose는 설치되어있으며, 터미널에 docker-compose 입력 시 아래 결과로 설치되어있음을 확인할 수 있다. app.py 다음은 redis와 flask를 이용한 간단한 웹페이지 작성이다. get_hit_count 함수로..

MLOps 2023.12.24