[DOCKER] 도커 설치 및 컨테이너 개념과 동작 원리

2024. 9. 15. 00:56·DevOps/Docker
클라우드 네이티브 이해

 

  • CNCF(Cloud Native Computing Foundation) : 클라우드 네이티브라는 용어를 처음 만든 단체

https://www.cncf.io/

 

Cloud Native Computing Foundation

CNCF is the vendor-neutral hub of cloud native computing, dedicated to making cloud native ubiquitous.

www.cncf.io

  • 퍼블릭, 프라이빗, 하이브리드 클라우드와 같은 현대적이고 동적인 환경에서 확장 가능한 애플리케이션을 개발하고 실행할 수 있게 해줌
  • 컨테이너(도커), 서비스 메쉬, 마이크로서비스(쿠버네티스), 불변 인프라, 선언형 API 등등이 클라우드 네이티브 접근 방식의 예시
  • 회복성, 관리 편의성, 가시성을 갖춘 느슨하게 결합된 시스템을 가능하게 해줌
  • 엔지니어 입장에서 영향이 큰 변경을 최소한의 노력으로 자주 배포할 수있다.
  • 시간 흐름에 따라 생산성과 민첩성이 높아지면서 자연스럽게 생겨남
  Native APP Web APP Cloud Native App 
애플리케이션 개발 방법론 폭포수 모델  애자일 DevOps
애플리케이션 운영 구조 모놀리틱 멀티티어(프론트 - 비즈니스 - 백엔드) MSA
애플리케이션 운영 인프라 물리 서버 가상 서버 컨테이너

 

  • 클라우드 네이티브 기술 계층

Cloud 서비스 -> 컨테이너 -> MSA -> 자동화

컨테이너 이해

 

  • 애플리케이션과 운영환경이 모두 들어있는 독립된 공간
  • 애플리케이션 가상화
    • 경량의 독립 실행형 소프트웨어 패키지
    • 코드, 런타임, 시스템 도구, 시스템 라이브러리 및 설정과 같이 응용 프로그램을 실행하는 데 필요한 모든 것을 포함

도커가 그냥 뚝 하고 만들어진것은 아니다! 이것도 역사가 깊다.

Jails -> VServer(리눅스) -> Zonesw -> cgroups(구글) : 특정 프로세스에게 CPU, 메모리, 디스크 같은 리소스 할당 -> Namespaces(redhat) : 특정 프로세스 격리시켜줌 -> LXC(IBM) 의 과정을 걸쳐서 최종적으로 Docker가 탄생했다.

 

도커 컨테이너 WorkFlow

 

출처 : https://docs.docker.com/get-started/docker-overview/

 

What is Docker?

Get an in-depth overview of the Docker platform including what it can be used for, the architecture it employs, and its underlying technology.

docs.docker.com

  • DOCKER_HOST : 도커 서버, 서비스 Daemon 동작
  • Registry : 컨테이너 저장
  • Client - Server 모델의 Daemon 형태로 운영 
Docker vs Podman

 

  • Docker daemon : image, container, kernel에 대한 접근에 대해 제어
    • 중지되면 컨테이너 관련된 애플리케이션 서비스는 하나도 할수없다.(의존성이 강하다)
  • Root 계정이 아니면 동작 할수없다.
  • PODMAN : 컨테이너 관리를 위한 도커와 아주 유사한 OCI 컨테이너 관리 툴, Deamon에 의존적인 형태가 아닌 각각 독립적으로 운영 (Root less 컨테이너 운영 가능)

도커 컨테이너 설치

 

  • Amazon EC2 인스턴스 만들기
이름 : docker-host
AMI : Ubuntu Server 22.04 LTS (HVM), SSD Volume Type
인스턴스 유형 : t2.micro(cpu 1, memory 1GiB)
키 페어 : 이전에 만들었던 developer.pem
네트워크 설정 : [편집]
VPC : default
서브넷 정보 : ap-northeast-2a
퍼블릭 IP 자동 할당 : 활성화
보안 그룹 : 보안그룹 생성
스토리지 : 8G, gp3

2024.08.15 - [DevOps/AWS] - [AWS] Amazon EC2 인스턴스 만들기

 

[AWS] Amazon EC2 인스턴스 만들기

2024.08.15 - [DevOps/AWS] - [AWS] Amazon 네트워크 운영하기 [AWS] Amazon 네트워크 운영하기2024.08.15 - [DevOps/AWS] - [AWS] Amazon 클라우드 시작하기 [AWS] Amazon 클라우드 시작하기클라우드 이해 Cloud는 IT 자원(서

lsdiary.tistory.com

이 글을 참고해서 만들면 된다.

ssh -i developer.pem ubuntu@43.203.199.110

 

> EC2에 ssh 원격접속

키 페어를 새로 만드는 경우 chmod 400 xxx.pem 명령어를 통해 권한 범위를 줄여줘야한다.
sudo apt update

> 관리자 권한 필요

sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

> 필요한 의존성 패키지 설치

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

> 도커 공식 GPG 키 추가

echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

> 도커 repository 추가

sudo apt update
sudo apt install docker-ce

> 도커 설치

sudo docker --version

> 도커 설치 확인

sudo systemctl start docker

> 도커 시작

sudo systemctl enable docker

> 부팅시 도커 자동 시작 설정

docker 관리자(ec2-user) 설정
sudo usermod -aG docker $USER[ubuntu 사용]

> 도커 그룹에 현재 사용자 추가 (sudo 권한 없이 Docker 명령 사용)

id ubuntu

 

도커 설치가 완료 됐고, 다음 포스팅에선 Docker 명령어들에 대해서 알아보고자 한다.

'DevOps > Docker' 카테고리의 다른 글

[DOCKER] 컨테이너 스토리지 관리  (2) 2024.10.07
[DOCKER] Docker 명령어 총정리  (2) 2024.09.16
[DOCKER] Docker 아키텍처  (0) 2024.09.15
'DevOps/Docker' 카테고리의 다른 글
  • [DOCKER] 컨테이너 스토리지 관리
  • [DOCKER] Docker 명령어 총정리
  • [DOCKER] Docker 아키텍처
Ls._.Rain
Ls._.Rain
안되면 될때까지 삽질했던 기록
  • Ls._.Rain
    Ls{Diary}
    Ls._.Rain
  • 전체
    오늘
    어제
    • 분류 전체보기 (136)
      • Github (2)
      • Spring (51)
        • Batch Programming (13)
        • 결제 (4)
        • 대용량 트래픽 (32)
        • OpenAI (0)
        • Security (0)
        • WebSocket (0)
        • JPA (1)
      • Algorithm (67)
        • DFS (6)
        • BFS (6)
        • Dynamic Programming (10)
        • Brute Force (4)
        • Binary Search (6)
        • 구현, 시뮬레이션 (15)
        • Stack (1)
        • Greedy (4)
        • Priority_Queue (2)
        • Back Tracking (3)
        • Geometry (2)
        • SCC (1)
        • 투포인터 (4)
        • 최대유량 (1)
        • 정렬 (1)
      • OS (0)
      • DevOps (15)
        • AWS (11)
        • Docker (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • hELLO· Designed By정상우.v4.10.0
Ls._.Rain
[DOCKER] 도커 설치 및 컨테이너 개념과 동작 원리
상단으로

티스토리툴바