public:computer:docker

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revisionBoth sides next revision
public:computer:docker [2021/08/08 20:13] alexpublic:computer:docker [2021/08/08 20:59] alex
Line 1777: Line 1777:
  
 === 실행 환경 작성(create) === === 실행 환경 작성(create) ===
 +<alert type="info">docker-machine create --driver <드라이버명> <작성할 Docker 머신명></alert>
 +
 +  * Docker Machine에서 이용할 수 있는 드라이버 목록; https://docs.docker.com/machine/drivers/
 +
  
 === 실행 환경 목록 표시(ls/status/url) === === 실행 환경 목록 표시(ls/status/url) ===
 +<alert type="info">docker-machine ls [옵션]</alert>
 +
 +^  지정할 수 있는 주요 옵션  ^^
 +^ 옵션  ^ 설명  ^
 +| --quite, -q  | 머신명만 표시한다  |
 +| --filter  | 표시할 머신을 필터링한다  |
 +
 +<cli prompt="$ " comment="# ">
 +$ docker-machine status host1  # 실행 환경의 스테이터스 확인
 +$ docker-machine url host1  # 실행 환경의 URL 확인
 +</cli>
  
 === 실행 환경에 대한 SSH 연결(ssh) === === 실행 환경에 대한 SSH 연결(ssh) ===
 +<alert type="info">docker-machine ssh 머신명</alert>
 +
 +<cli prompt="$ " comment="# ">
 +$ docker-machine ssh host1
 +</cli>
 +
 === 실행 환경 시작/정지/재시작(start/stop/restart) === === 실행 환경 시작/정지/재시작(start/stop/restart) ===
 +<cli prompt="$ " comment="# ">
 +$ docker-machine start host1  # 실행 환경 시작
 +$ docker-machine stop host1  # 실행 환경 정지
 +$ docker-machine restart host1  # 실행 환경 재시작
 +</cli>
  
 === 실행 환경으로부터 파일 다운로드(scp) === === 실행 환경으로부터 파일 다운로드(scp) ===
 +<cli prompt="$ " comment="# ">
 +$ docker-machine scp host1:/etc/passwd .  
 +</cli>
 +
 +  * SCP(Secure Copy Protocol); SSH의 기능을 사용하여 파일을 전송하기 위한 명령 Secure Copy Protocol로 인증 정보와 데이터를 암호화하여 네트워크로 전송
  
 === 실행 환경 삭제(rm/kill) === === 실행 환경 삭제(rm/kill) ===
 +<cli prompt="$ " comment="# ">
 +$ docker-machine rm -f host1  # 실행 환경 삭제
 +$ docker-machine kill host1  # 실행 환경 강제 정지
 +</cli>
  
 === 실행 환경 정보 확인(ip/inspect) === === 실행 환경 정보 확인(ip/inspect) ===
 +<cli prompt="$ " comment="# ">
 +$ docker-machine ip host1  # IP 주소 확인
 +</cli>
  
 +<alert type="info">docker-machine inspect [옵션] 머신명</alert>
  
  
Line 1796: Line 1835:
 ---- ----
 ===== 클라우드를 사용한 Docker 실행 환경 구축 ===== ===== 클라우드를 사용한 Docker 실행 환경 구축 =====
 +> GKE(Google Kubernetes Engine)
  
 ==== 클라우드 환경에서 Docker 오케스트레이션하기 ==== ==== 클라우드 환경에서 Docker 오케스트레이션하기 ====
  
 === 분산 환경에서의 컨테이너 운용 관리 === === 분산 환경에서의 컨테이너 운용 관리 ===
 +  * Kubernetes
 +  * Docker Enging(Swarm 모드)
 +  * Apache Mesos, Marathon
 +
  
 === 퍼블릭 클라우드가 제공하는 매니지드 서비스 === === 퍼블릭 클라우드가 제공하는 매니지드 서비스 ===
 +  * Amazon EC2 Container Service
 +  * Azure Container Service(AKS)
 +  * Google Kubernetes Engine(GKE)
 +
  
 === Google Cloud Platform의 컨테이너 관련 서비스 === === Google Cloud Platform의 컨테이너 관련 서비스 ===
 +  * Google Container Builder
 +  * Google Kubernetes Enging
 +  * Google Container Registry
 +
  
 ==== Kubernetes의 개요 ==== ==== Kubernetes의 개요 ====
 +  * 여러 서버들에서의 컨테이너 관리
 +  * 컨테이너 간 네트워크 관리
 +  * 컨테이너의 부하분산
 +  * 컨테이너의 감시
 +  * 무정지로 업데이트
  
 === Kubernetes의 서버 구성 === === Kubernetes의 서버 구성 ===
 +  * 마스터 서버(Kubernetes Master)
 +  * 백엔드 데이터베이서(etcd)
 +  * 노드(Node)
 +
  
 === 애플리케이션 구성 관리(Pod, ReplicaSet, Deployment) === === 애플리케이션 구성 관리(Pod, ReplicaSet, Deployment) ===
 +  * Pod(포드)
 +  * ReplicaSet(리플리카 셋)
 +  * Deployment(디플로이먼트, 전개)
  
 === 네트워크 관리(Service) === === 네트워크 관리(Service) ===
Line 1816: Line 1880:
  
 === Kubernetes의 구조 === === Kubernetes의 구조 ===
 +  * 마스터(Master); API Server, Scheduler, Controller Manager
 +  * 데이터 스토어(etcd)
 +  * 노드(Node); Kubelet
  
 ==== GCP를 사용한 Docker 애플리케이션 개발 ==== ==== GCP를 사용한 Docker 애플리케이션 개발 ====
Line 1824: Line 1891:
  
 === Docker 이미지 빌드(Cloud Container Builder) === === Docker 이미지 빌드(Cloud Container Builder) ===
 +  * API 유효화하기
 +    * Google Kubernetes Engine API
 +    * Google Container Registry API
 +    * Google Cloud Build API
 +  * Docker 이미지 빌드 파일; 빌드 스텝 -> 이미지 -> 
  
 ==== GCP를 사용한 Docker 애플리케이션 실행 환경 구축 ==== ==== GCP를 사용한 Docker 애플리케이션 실행 환경 구축 ====
Line 1849: Line 1921:
  
 === 가용성 관리 === === 가용성 관리 ===
 +  * 콜드 스탠바이 방식; 스탠바이 기기는 장애가 발생하면 액티브 기기와 교체
 +  * 핫 스탠바이 방식; 액티브 기기에서 장애가 발생하면 자동으로 스탠바이 기기로 교체
 +  * 헬스 체크
 +    * ICMP 감시(레이어 3); Ping 등의 응답을 확인
 +    * 포트 감시(레이어 4); 웹서비스의 경우는 80번 포트로부터 응답이 있는지 확인
 +    * 서비스 감시(레이어 7); HTTP 통신을 확인하는 경우 특정 페이지가 올바르게 표시되는지를 확인
 +  * 로드 밸런싱(load balancing)
 +
 +
 +  * Disaster Recovery System
 +    * RTO(Recovery Time Objective); 서비스를 복구할 때까지 필요한 경과 시간
 +    * RPO(Recovery Point Objective); 재해 등으로 시스템이 정지되었을 때 어떤 시점까지 거슬러 올라가서 데이터를 복구시킬지에 대한 지표
  
 === 수용성(Capacity) 관리 === === 수용성(Capacity) 관리 ===
  
 === 시스템 감시 === === 시스템 감시 ===
 +  * 머신의 활동 감시
 +  * 서비스의 가동 감시
 +  * 서버/네트워크의 리소스 감시
 +  * 잡 감시
 +  * 장애 대응
  
 ==== GKE를 사용한 Docker 실행 환경의 운용 ==== ==== GKE를 사용한 Docker 실행 환경의 운용 ====
  
 === Kubernetes의 스테이터스 확인 === === Kubernetes의 스테이터스 확인 ===
 +  * 클러스터의 상태 확인
 +  * 노드의 스테이터스 확인
 +  * Pod의 상태 확인
 +  * 서비스 확인
  
 === Kubernetes의 Pod 관리 === === Kubernetes의 Pod 관리 ===
Line 1863: Line 1956:
  
 === Kubernetes의 리소스 작성/삭제/변경 === === Kubernetes의 리소스 작성/삭제/변경 ===
 +  * 리소스 작성
 +  * 리소스 삭제
 +  * 리소스 변경
  
 === Kubernetes의 업그레이드/다운그레이드 === === Kubernetes의 업그레이드/다운그레이드 ===
Line 1953: Line 2049:
 ===== Google Cloud Platform 사용법 ===== ===== Google Cloud Platform 사용법 =====
 ==== A.1 계정 등록 ==== ==== A.1 계정 등록 ====
 +  * Google 계정, 신용카드 또는 은행 계좌
 +
 +  - 등록 시작
 +  - 계정 정보 등록
  
-[1] 등록 시작 
-[2] 계정 정보 등록 
 ==== A.2 프로젝트 작성과 삭제 ==== ==== A.2 프로젝트 작성과 삭제 ====
  
-[1] 프로젝트 작성 +  - 프로젝트 작성 
-[2] 프로젝트명 설정 +  프로젝트명 설정 
-[3] 프로젝트 삭제+  프로젝트 삭제
 ==== A.3 Cloud Console 사용법 ==== ==== A.3 Cloud Console 사용법 ====
  
- 툴과 서비스 +  * 툴과 서비스 
- 대시보드+  대시보드
 ==== A.4 Cloud Shell 사용법 ==== ==== A.4 Cloud Shell 사용법 ====
  
  • public/computer/docker.txt
  • Last modified: 2021/08/08 21:00
  • by alex