일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 도커
- docker
- 도커 이미지
- k8s
- 클라우드
- centOS7
- linux
- NGINX
- os
- Python
- centOS
- 쿠버네티스
- boj
- 리눅스
- devops
- 인프라
- Swift
- 부스트코스
- ios
- AWS
- 데브옵스
- 운영체제
- kubernetes
- 프로세스
- 네트워크
- 컨테이너
- swift 클로저
- C++
- 도커 컨테이너
- 도커 명령어
- Today
- Total
목록분류 전체보기 (153)
귀염둥이의 메모
Docker 이미지를 레지스트리에서 다운로드/업로드 Docker 컨테이너의 시작/정지 모든 조작은 Docker 명령으로 수행한다 이미지 검색 (docker search) docker search [옵션] 옵션 설명 --no-trunc 결과를 모두 표시 --limit n건의 검색 결과를 표시 --filter=stars=n star의 수(n 이상)를 지정 NAME : 이미지 이름 DESCRIPTION : 이미지 설명 STARS : 즐겨찾기 수 OFFICIAL : 공식 이미지인지? AUTOMATED : Dockerfile을 바탕으로 자동 생성된 이미지인지? Docker Hub에는 사용자가 작성한 임의의 이미지를 공개할 수 있다. 그래서 Docker 이미지의 이름을 고유하게 하기 위해 '사용자명/이미지명' 형식..
Nginx 이미지 받아오기 docker image pull nginx docker image ls🐳 이미지 목록 보기 IMAGE ID : 해쉬 값 CREATED : 언제 만들어짐? SIZE : 크기 컨테이너 실행 docker container run --name webserver -d -p 80:80 nginx docker container ls 🐳 구동중인 컨테이너 보기 --name webserver : webserver 이름으로 실행 -d : 백그라운드 옵션(detach) -p 80:80 : 호스트의 80 포트와 컨테이너 80 포트를 연결!! ⭐️ COMAND : 실행한 내용 CREATED : 만들어진 시점 STATUS : 상태 PORTS : 포트 정보 NAMES : 컨테이너 이름 curl local..
CentOS 7 - Docker 설치 참조 : https://docs.docker.com/engine/install/centos/ docker-ce : 도커 엔진 docker-ce-cli : 엔진 명령 컨트롤 도구 containerd.io : 컨테이너 서비스 (실제로 컨테이너를 쓸 수 있는 서비스) 실행 및 설정 sudo systemctl start docker.service sudo systemctl enable docker.service sudo usermod -aG docker user ➡️ user 사용자 docker 그룹에 추가 docker --version hello-world 실행 docker container run ex) docker container run ubuntu:latest /b..
네트워크 구성(가상 bridge/ 가상 NIC) Linux는 Docker를 설치하면 서버의 물리 NIC(Network Interface Card)가 docker0이라는 가상 브리지 네트워크로 연결된다 docker0은 Docker를 실행시키면 기본적으로 만들어진다 Docker 컨테이너가 실행되면 컨테이너에 172.17.0.0/16라는 서브넷 마스크를 가진 Private IP가 eth0으로 자동 할당된다 이 가상 NIC는 OSI Layer 2인 가상 네트워크 인터페이스로, 페어인 NIC와 터널링 통신을 한다 가상 NIC(vethxxx)는 컨테이너에서 eth0으로 인식된다 Docker 컨테이너와 외부 네트워크가 통신할 때는 가상 브리지 docker0와 호스트 OS의 물리 NIC에서 패킷을 전송하는 장치가 필요..
Docker의 작동 구조 컨테이너라는 독립적인 환경을 만들기 위해 Linux 커널의 namespace라는 기능을 사용한다. 또한, 물리 머신 상의 자원을 여러 컨테이너가 공유하여 작동하게 된다. 이때 Linux 커널 기능인 cgroups(control groups) 기능을 사용하여 자원의 할당 등을 관리한다. 컨테이너를 구획화하는 장치 (namespace) namespace는 한 덩어리의 데이터에 이름을 붙여 분할 함으로써 충돌 가능성을 줄이고, 쉽게 참조할 수 있게 하는 개념이다. 이름과 연결된 실체는 그 이름이 어떤 이름 공간에 속해 있는지 고유하게 정해진다. 그래서 이름 공간이 다르면 동일한 이름이라도 다른 실체로 처리된다. PID namespace PID와 프로세스를 격리시키고, namespace..
Docker의 기능 Build - 도커 이미지를 만드는 기능 Ship - 도커 이미지를 공유하는 기능 Run - 도커 컨테이너를 작동시키는 기능 Build 애플리케이션의 실행에 필요한 프로그램 본체, 라이브러리, 미들웨어, OS나 네트워크 설정 등을 하나로 모아 도커 이미지를 만든다 도커 이미지는 실행 환경에서 움직이는 컨테이너의 바탕이 됨 하나의 이미지에는 하나의 애플리케이션만 넣어 두고, 여러 개의 컨테이너를 조합하여 서비스를 구축하는 방법을 권장 이미지는 Docker 명령을 사용하여 수동으로 만들 수도 있고, Dockerfile이라는 설정 파일을 만들어 그것을 바탕으로 자동으로 이미지를 만들 수도 있다 CI/CD 관점에서 코드에 의한 인프라의 구성 관리를 생각하면 Dockerfile을 사용하여 관리..
Docker의 개요 Docker는 애플리케이션의 실행에 필요한 환경을 하나의 이미지로 모아둔다 이미지를 사용하여 다양한 환경에서 애플리케이션 실행 환경을 구축 및 운용하기 위한 오픈 소스 플랫폼 이미지만 있으면 동일환 환경에서 애플리케이션을 가동할 수 있다 Docker 내부에서 컨테이너 기술을 사용한다 이식성(portability)이 높기 때문에 클라우드 시스템과 친화력도 높다 온프레미스 환경에 대한 이쩐 뿐만 아니라 '온프레미스 ➡️ 클라우드', '클라우드 ➡️ 온프레미스' 간에도 시스템 요건이나 예산에 따라 손쉽게 실행 환경을 선택할 수 있다 Docker 컨테이너의 특징 모듈성 전체 애플리케이션을 분해할 필요 없이 일부를 분해하고, 업데이트 또는 복구하는 능력에 집중 계층 및 이미지 버전 제어 각 도..
호스트 가상화 호스트 OS에 가상화 소프트웨어를 설치 후, 가상화 소프트웨어 상에서 게스트 OS를 구동 호스트 운영체제에 크게 제약사항이 없음 호스트 OS 상에서 다른 게스트 OS를 움직이기 때문에 오버헤드가 크다 오버헤드 : 가상화 수행을 위한 CPU 자원, 디스크 용량, 메모리 사용량 Virtual Box, VMware Workstation 등 하이퍼바이저 가상화 가상화를 전문으로 수행하는 소프트웨어인 하이퍼바이저를 배치하고, 하드웨어와 가상 환경을 제어 호스트 OS 없이 하드웨어를 직접 제어하기 때문에 자원을 효율적으로 사용 가능 가상 환경마다 별도의 OS가 작동하므로 가상 환경의 시작에 걸리는 오버헤드가 커진다 하이퍼바이저형은 펌웨어로서 구축하는 경우가 많다 전가상화, 반가상화 방식이 있다 컨테이..
HPC (High Performance Computing) HPC 솔루션 중 가장 잘 알려진 유형은 슈퍼 컴퓨터이다. 슈퍼 컴퓨터에는 하나 이상의 작업을 함께 수행하는 수천 개의 컴퓨팅 노드가 포함되며, 이를 병렬 처리라고 한다. 작업을 빠르게 완료하기 위해 수천 대의 PC를 네트워크로 연결하여 컴퓨팅 파워를 결합하는 것과 비슷하다. HPC는 온프레미스, 클라우드 또는 이 둘을 합친 하이브리드 모델에서 수행이 가능하다. 고성능 컴퓨팅 또는 슈퍼 컴퓨팅 여러 대의 컴퓨터와 스토리지를 사용하여 매우 빠른 속도로 방대한 양의 데이터를 처리 Why HPC ⁉️ 3D 이미징, IoT, AI, 빅데이터 등의 기술이 발전하면서 사용하는 데이터의 크기와 양이 기하급수적으로 증가하고 있다 방대한 양의 데이터를 실시간으로..
고가용성(High-Availability) 장애 극복(Fail Over)의 목적 서버 이중화 구성 서버 한 개가 죽어도 서비스가 되어야 함 Active-Active (A-A) L4 스위치 등의 로드밸런싱을 통해서 여러 개의 서버로 나누어서 처리한다 여러 개의 서버가 동시에 동작하기 때문에, 한대가 다운되어도 남은 서버가 처리 가능 다운 타임이 존재하지 않는다 Active-Stand by (A-S) Active 상태의 서버, Stand by 서버 S가 A에게 계속해서 keep-alive를 통해 상태를 확인 A가 장애시 서비스 장애를 즉시 인지하여 S로 서비스를 이전 장애 발생 시 서비스를 이전하여 운영하는 형태 성능적 향상은 거의 ❌ S가 놀고 있는 상태 -> 리소스 측면에서 낭비 Stand by 유형 H..