Docker
-
[Docker] Security in DockerDocker 2024. 3. 8. 22:34
리눅스 기반 보안 기술 1. Kernal namespaces 여러 개의 OS가 있는 것처럼 만드는 기술 포트 충돌 없이 여러 개의 웹서버를 돌릴 수 있게 하는 기술 각각의 앱은 자기만의 network namespace가 있다. 해당 공간 내에 자신만의 IP 주소와 풀 범위 포트 존재 여러 앱 간 공유 자원들을 경쟁조건 없이 돌릴 수 있게 하는 기술 IPC namespace 자기만의 파일 시스템 각각의 앱은 자기만의 mount namespace(filesystem)이 있다. 각각의 mount namespace는 자기만의 시스템 복사본이 있다.(/etc, /var, /dev etc) 자신만의 namespace가 있는 것들 process id network filesystem/mount inter-proces..
-
[Docker] Docker overlay networkingDocker 2024. 3. 8. 22:27
Docker overlay networking - The Deep Dive 2015년, 도커 회사는 Socket Plane이라는 스타트업 인수함. 인수 이유: 컨테이너간 네트워크 연결을 개발자도 쉽게 할 수 있도록 기술 획득 스웜 모드에서 도커 오버레이 네트워크 빌드하고 테스트하기 1. 초기: 2개의 개별 호스트에서 노드 하나씩 있는 상태 2. 스웜 생성 # 스웜 및 매니저 역할 부여 docker swarm init \ --advertise-addr=172.31.1.5 \ --listen-addr=172.31.1.5:2377 # 워커 역할 부여 docker swarm join \ --token SWMTKN-1-0hz2ec...2vye \ 172.31.1.5:2377 node1에서 docker swarm ..
-
[Docker] Swarm modeDocker 2024. 3. 8. 22:04
swarm mode 도커 플랫폼에 내장된 orchestration 기능 복잡한 kubernates보다 간단 swarm = cluster 도커 호스트들이 모여 있는 집단 single-engine mode와 Swarm mode swarm은 하나 이상의 노드들로 구성된다. 노드는 물리서버, 가상머신, 클라우드 인스턴스 등이 될 수 있다. swarm에 들어 있는 노드들에게 부여된 요구사항은 오직 서로 신뢰할 수 있는 네트워크로 연결되어 있어야 한다는 것이다. swarm은 매니저(manager)와 워커(worker)로 구성된다. 매니저는 클러스터의 상태를 체크하고 워커에게 임무를 할당하는 역할을 한다. 워커는 매니저로부터 받은 임무를 실행하는 역할을 한다. 임무는 컨테이너를 의미한다. 다음으로 알아야 할 것은 서..
-
[Docker] 3. Containerizing - Dockerfile로 도커 이미지 만들기Docker 2024. 3. 8. 21:38
Containerizing(컨테이너화) 응용 프로그램과 그에 필요한 모든 종속성을 컨테이너로 묶어서 효율적으로 배포 및 실행할 수 있게 해주는 과정 도커 이미지를 만드는 과정이다. Dockerfile이 Docker image로 빌드되는 과정 현재 디렉토리 상태 app.js와 package.json 등 node.js 앱을 만들기 위한 파일들과 Dockerfile이 있다. Dockerfile 코드를 살펴보자. Dockerfile 구성 Dockerfile은 맨윗줄부터 맨 아랫줄까지 한줄씩 파싱되어 실행된다. 주석(#)이 아닌 줄은 모두 실행되어야 하는 명령어이다. 대소문자를 구별하지 않지만 명령어의 이름은 대문자로만 이루어지는게 보기 편하다. 위의 Dockerfile 각 명령어별 설명 1. FROM alpin..
-
[Docker] 2. 도커 이미지(Docker Image) 3분 이해Docker 2024. 2. 23. 15:09
Docker Image 도커 이미지는 추상화된 개념이기 때문에 비유적으로 이해하면 편하다. 도커 이미지는 클래스, 정지한 컨테이너라고 보면 된다. 이미지라고 해서 jpg, png 형식의 그림 이미지를 이야기하는게 아니다. 그 고정된 상태를 의미하는 차원에서의 이미지이다. Image: 빌드 타임 생성물 Container: 런타임 생성물 특정 이미지를 참조해 컨테이너 생성했으면, 해당 이미지는 해당 컨테이너가 삭제되기 전까지 삭제 불가 컨테이너들은 호스트의 커널을 공유하기 때문에, 이미지 파일 내에는 특정 OS의 파일시스템, OS 관련 파일, app 관련 파일 뿐이다. OS별 이미지 크기비교 alpine linux 이미지: 4MB ubuntu 이미지: 120MB MS .NET 이미지: 2GB 공식, 비공식 ..
-
[Docker] 1. 도커Docker를 왜 만들었을까? - 도커 큰그림 그리기Docker 2024. 2. 23. 14:01
Reference Book: Docker Deep Dive 1. 컨테이너 기술이 등장하기 전 과거 옛날엔 한 서버에서 여러 개의 app을 돌리기 안전하지 않았다. 따라서, app 하나 추가할 때 서버를 하나 사야했는데, 이 app 구동에 필요한 사양을 추측해서 서버를 사야했다. 따라서, 남는 사양 → 낭비 VMware의 등장 한 서버에서 여러 개의 VM을 운영함으로써 여러개의 app을 안전하게 구동할 수 있게 되었다. VM 류의 단점 각각의 가상머신은 OS 위에서 구동되기 때문에 CPU, RAM, Storage 많이 사용함. Container의 등장으로 해결 container는 VM과 비슷하지만 차이가 있음. Container vs VM 차이점 컨테이너: 호스트에 OS가 설치되어 있고, 하나의 호스트에서..