목록전체 글 (67)
Study_note
볼륨 컨테이너의 read-write layer은 호스트에 위치하기 때문에 데이터를 다른 호스트로 이전하기 어렵고 컨테이너가 삭제되면, 데이터가 영구적으로 유지되지 않기 때문에 다른 프로세스나 컨테이너가 해당 데이터를 필요로 하는 경우 사용할 수기 때문에 볼륨을 활용한다. named volume bind mounts는 호스트 시스템의 디렉토리 구조와 os에 의존적인 반면 볼륨은 디렉터리에 상용하는 단위로 도커 엔진에 의해서 관리한다 또한 볼륨을 어떤 컨테이너가 사용하는지, 어떻게 마운트 되는지 관리하기 용이하다 즉 네임드 볼륨은 볼륨위치를 도커가 관리 바인드는 볼륨 위치를 설정해줘야 한다 우선 create 명령어로 볼륨을 생성하고 inspect 명령어를 사용하여 볼륨의 세부 정보를 출력하면 아래와 같다 볼..
도커 이미지 이미지는 컨테이너 생성할 때 필요하며 가상 머신을 생성할 때 iso 파일과 비슷하다 도커 컨테이너 이미지로 컨테이너를 생성하며 이미지 목적에 맞는 파일이 들어 있는 파일 시스템과 격리된 자원 및 네트워크를 사용할 수 있는 독립된 공간이 생성되는데 이것을 도커 컨테이너라고 한다. 명령어 docker info -> 도커 실행 환경의 상세 설정이 표시 docker container ps 현재 컨테이너들의 목록확인 ( -a 현재 실행중, 실행 중이지 않는 컨테이너까지 모두 출력) command = 컨테이너가 시작될 때 실행될 명령어 centos, ubuntn 같은 경우 컨테이너 시작될 때 /bin/bash 쉘이 실행된다 docker container create 컨테이너를 생성하고 자동으로 시작하지..
Overlay2란? read-only image( lower dir )로 각 컨테이너들이 공용으로 사용하고 컨테이너 생성 시 필요한 read-write image(upper dir)를 추가해서 각 컨테이너 별 사용하는 공간을 최소화하는 기술 우선 실습할 overlay 디렉터리와 그안에 container image1 image2 image3 work merge를 생성해준다 # mkdir overlay # cd overlay # mkdir container image1 image2 image3 work merge 디렉터리를 만들었다면 a b c 파일을 만들고 구분할 수 있게 파일을 채운 후 마운트 해준다 # echo Hello world > image1/a # echo Hi everyone > image1/..
Cgroups이란? 단일 프로세스, 작업이라 불리는 프로세스 그룹에 대한 cpu, memory, storage 자원 할당 및 제어 하는 커널 기능 우선 cgroups-tool, stress를 설치해준다 cgroops-tool은 cgcreate,cgdelete 등을 사용할수있게한다 stress는 원하는만큼 cpu에 부하를 줄 수 있다 tool 생성후 cgroup 생성 하기전 명령어 top로 cpu 사용량을 보면 아래처럼 0%인것을 알 수 있다 그리고 df -hT로 마운트된파일을 보고 Cgroup에 위치를 찾고 그 안에 cpu 파일에 cgroup을 생성해준다 설치 후 아래와 같이 진행한다 cgcreate -g cpu:testcgroups # cgcreate 명령어로 testcgroups라는 cpu를 제한할수..
Namespace란? 프로세스를 실행할 때 시스템의 리소스를 분리해서 실행할 수 있도록 도와주는 기능으로 한 시스템의 프로세스들은 기본적으로 시스템의 리소스들을 공유해서 실행된다 네임스페이스 종류 PID Namespace 프로세스 ID(PID)를 분리하여 관리한다 네임 스페이스를 분리하면 프로세스에게 부여되던 PID 1번을 각 PID 네임스페이스에 할당 UTS Namespace uname 시스템 명령어에 의해서 반환되는 시스템 정보들 중 hostname, nis domain name 등 호스트의 네임스페이스 별로 hostname을 격리 NET Namspace 네트워크 환경을 분리하면 네임스페이스에 속한 프로세스들에 새로운 IP를 부여하거나 네트워크 인터페이스를 추가하는 것이 가능하며 네트워크 namesp..
chroot란? Change Root Directiory의 줄임말로 현재 프로세스와 자녀 프로세스의 루트 디렉터리를 변경하는 작업이다. chroot를 이용해 변경된 루트 디렉토리에서는 그 상위에 디렉터리에 파일 및 명령에 접근할 수 없게 격리시킬 수 있다. 이렇게 변경된 환경을 chroot jail이라고 부른다. 우선 root에서 newroot 디렉토리와 그 안에 bin, lib, lin64 3개의 디렉터리를 생성해준다 명령어는 mkdir -p /root/newroot/{bin,lib,lib64} bash, ls 명령어를 사용하면 다음과 같은 에러가 생성될 것이다 chroot /root/newroot/bin/bash (해당 디렉터리에서 /bin/bash 실행) chroot: failed to run co..