Docker 38

Kubernetes 실습 :: Virtual Machine에서 Kubernetes 설치 (1) master 서버 생성

Virtual Machine에서 Kubernetes 설치 (1) master 서버 생성 1. 쿠버네티스 가동 서버 제작 이름: k8s-master / IOS: ubuntu-22.04 무인 설치 건너뛰기 체크 (파티션 임의 지정 분할을 위해) 기본 메모리: 4096 / 프로세서: 2 가상 하드디스크: 100 2. k8s-master 서버 설정 오디오: 비활성화 시스템: 광 디스크 / 하드 디스크 활성화 (플로피 해제) 네트워크: 어댑터 1 - NAT / 어댑터 2 - 호스트 전용 네트워크 업데이트와 소프트웨어: Other options에서 Download updates while installing Ubuntu 해제 설치 타입: Something else 1. 크기: 80000 / 유형: XFS / 마운트..

Docker 실습 :: 윈도우 Window에서 Docker 설치 과정

winget > kubectl > minikube 순으로 설치 예정 winget: Microsoft가 개발한 윈도우 용 소프트웨어 설치 관리자 Windows PowerShell에서 설치해야 함 1. winget 설치 PS C:\\Users\\admin> $progressPreference = 'silentlyContinue' Write-Information "Downloading WinGet and its dependencies..." Invoke-WebRequest -Uri -OutFile Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle Invoke-WebRequest -Uri -OutFile Microsoft.VCLibs.x64.14.00.Deskto..

Docker와 Kubernetes 소개 이론 정리

Docker: 컨테이너 가상 실행 환경을 제공해주는 대표적인 오픈소스 플랫폼 image: 컨테이너를 덩의하는 읽기 전용 템플릿 Dockerfile: 도커 이미지를 생성하기 위한 명세서 Container: 애플리케이션 레벨에서 필요한 소스 코드, 라이브러리 등 모든 파일을 하나의 런타임 환경으로 패키징하는 기술 가상머신과 비교하여 컨테이너 생성이 쉽고 효율적 컨테이너 이미지를 이용한 배포와 롤백이 간단 언어나 프레임워크에 상관없이 애플리케이션을 동일한 방식으로 관리 개발, 테스팅, 운영 환경은 물론 로컬 PC와 클라우드까지 동일한 환경을 구축 특정 클라우드 벤더에 종속적이지 않음 namespace: 컨테이너에 대한 격리 계층을 제공 cgroup: 애플리케이션을 특정 리소스 사용 세트(CPU, 메모리, 디스..

Docker 실습 :: Dockerfile 제작 후 이미지 생성

/Labs/ch07 에서 Dockerfile 제작 파이썬 기반의 어플리케이션을 제작한다고 가정 필요 리소스 1. Dockerfile 작성 FROM python:3.9.18-alpine3.19 WORKDIR /app COPY requirement.txt . COPY app/static static COPY app/template template COPY app.py . RUN pip install --no-cache-dir -r requirement.txt CMD ["python", "app.py"] 2. Dockerfile을 이미지로 생성 이름: myapp:20240117 ubuntu@host1:~/Labs/ch07$ docker build -t myapp:20240117 . 3. 컨테이너 생성 ubun..

Docker 마운트 실습 :: 스토리지 드라이버 설정(--storage-opt)과 pquota 마운트

--storage-opt: 컨테이너를 실행할 때 스토리지 드라이버에 대한 추가적인 설정을 지정하는 데 사용 ubuntu@host1:~/Labs/ch06$ docker container run -it -v /home/ubuntu/Labs/ch06/nginx-log/:/webapp --name=mycontainer --storage-opt size=1g ubuntu:14.04 bash docker: Error response from daemon: --storage-opt is supported only for overlay over xfs with 'pquota' mount option. See 'docker run --help'. >> 스토리지 드라이버가 xfs 파일 시스템 위에서만 'pquota' 마운..

Docker 마운트 실습 :: 마운트를 이용한 NginX 로그 기록 관리

로그 기록 업데이트 파일 마운트 로그 기록을 마운트 해 자동적으로 업데이트 > 로그 기록 관리 로그 기록 파일 저장 위치: /Labs/ch06/nginx-log 1. 로그 기록 저장 폴더 생성: nginx-log ubuntu@host1:~/Labs/ch06$ mkdir nginx-log ubuntu@host1:~/Labs/ch06$ ls bind01 bind02 **nginx-log** 2. 로그 기록을 가져올 컨테이너 생성 마운트 호스트: ${PWD}/nginx-log 컨테이너: /var/log/nginx 포트 포워딩 8001(호스트):80(컨테이너) ubuntu@host1:~/Labs/ch06$ docker container run -d --name=myweb -v ${PWD}/nginx-log:/v..

Docker :: 컨테이너 마운트mount 개념과 실습

도커 컨테이너와 호스트 시스템 간에 파일 또는 디렉터리를 공유하거나 볼륨을 연결하는 프로세스 형식: docker container run -v /호스트/경로:/컨테이너/경로 이미지:태그 ch06 폴더에 bind01 bind02 폴더를 생성 후, 각 폴더 안에 docker-1.txt, docker-2.txt 파일 생성 docker-1.txt 내용: 2020401771103 docker-1 / docker-2.txt 내용: 2020401771103 docker-2 ubuntu@host1:~/Labs/ch06$ cat bind01/docker-1.txt 2020401771103 docker-1 >> 내용 확인 ubuntu@host1:~/Labs/ch06$ cat bind02/docker-2.txt 202040..

Docker :: 컨테이너 볼륨volume 개념과 실습

볼륨: 도커 컨테이너 간에 데이터를 공유하고, 컨테이너의 파일 시스템이나 호스트 파일 시스템과 분리된 영역에 데이터를 저장하는 도커의 데이터 관리 기능 영속성(Persistence): 볼륨은 컨테이너가 삭제되더라도 데이터를 보존하므로, 데이터의 영속성을 제공 컨테이너 간 데이터 공유: 여러 컨테이너에서 동일한 볼륨을 사용하여 데이터를 공유 백업과 복원: 볼륨은 백업 및 복원이 쉽고, 데이터를 관리하기 용이 볼륨 위치: /var/lib/docker/volumes /var/lib/docker/volumes ubuntu@host1:~/Labs/ch06$ sudo su - [sudo] ubuntu 암호: root@host1:~# cd /var/lib/docker/volumes root@host1:/var/lib..

Docker :: 컨테이너CPU 자원 한계 설정

해당 컨테이너가 CPU를 상대적으로 얼마나 사용할 수 있는지 설정 시스템에 존재하는 CPU를 어느 비중만큼 나눠(share) 쓸 것인지를 명시 아무런 값을 할당하지 않았을 때 컨테이너가 가지는 값은 1024 --cpu-shares 1024: 컨테이너에 할당되는 CPU 리소스의 가중치를 1024로 설정 --cpu-shares 512: 컨테이너에 할당되는 CPU 리소스의 가중치를 512로 설정 stress --cpu 4: 컨테이너 내에서 실행되는 명령어로, CPU에 대한 스트레스를 발생시키는 도구인 "stress"를 사용하며, 이때 4개의 CPU 코어를 사용하도록 지정 --cpu-shares 512: 컨테이너에 할당되는 CPU 리소스의 가중치를 512로 ..

Docker 네트워크 실습 심화 :: HAproxy ACL 조건 설정

ACL 조건: 특정 조건에 따라 요청을 필터링하고, 특정 동작을 취할 수 있도록 하는 규칙들의 목록 (경로 세부 설정) 1. haproxy.cfg 편집 ubuntu@host1:~/Labs/ch05$ cp haproxy.cfg haproxy1.cfg >> 기존 haproxy.cfg 내용을 옮기고 새로 haproxy.cfg 생성 ubuntu@host1:~/Labs/ch05$ vi haproxy.cfg global stats socket /var/run/api.sock user haproxy group haproxy mode 660 level admin expose-fd listeners log stdout format raw local0 info defaults mode http timeout client ..