상세 컨텐츠

본문 제목

[Docker] Docker 설치, 개념 정리

Development

by 12기통엔진 2024. 7. 14. 18:15

본문

반응형
  1. Docker cli 설치
  2. Docker client 설치
  3. Docker 란?
  4. Docker 활용 (뭐가 달라지는데?)
  5. Docker 핵심 개념 (이것만 알면 Docker 당장 써먹을 수 있음)

 

Docker cli 설치


  • linux
 

Install Docker Engine on Ubuntu

Jumpstart your client-side server applications with Docker Engine on Ubuntu. This guide details prerequisites and multiple methods to install Docker Engine on Ubuntu.

docs.docker.com

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  • mac
brew install docker

 

Docker client 설치 (정식 명칭은 Docker Desktop)


 

Docker Desktop: The #1 Containerization Tool for Developers | Docker

Docker Desktop is collaborative containerization software for developers. Get started and download Docker Desktop today on Mac, Windows, or Linux.

www.docker.com

링크 들어가서 운영체제 따라 설치

 

Docker 란?


  • 소프트웨어 패키징 플랫폼
  • 비교 가능한 개념 - VM
    • 기존 VM의 문제
      • 개별 하드웨어 구성 + 운영체제
      • VM을 실행 중엔 계속해서 부모 리소스 점유
      • 여러 애플리케이션만 실행하면 되는 환경에서 여러 VM을 사용하는 것은 불필요하다.
      • = MSA 환경에 부적합
  • 온디맨드 방식의 리소스 사용 (쓸 때만 부모 리소스 점유)

 

Docker 활용 (뭐가 달라지는데?)


  1. cloud computing 환경에서 프로그램 구동에 필요한 패키지를 설치할 필요가 없어진다. (리소스 확보)
    • 로컬에 mysql cli, engine 설치하지 않고도 mysql db 컨테이너 만들어서 개발 가능
  2. Docker Hub로 프로젝트의 변경사항을 빠르게 적용 가능하다.
  3. 애플리케이션의 env 파일 관리가 편리하고 유연해진다.

 

Docker 핵심 개념 (이것만 알면 Docker 당장 써먹을 수 있음)


  1. Docker Image
    • VM 구동 시 필요한 운영체제 image와 유사한 개념
    • 사용할 애플리케이션의 상세 코드를 포함한 custom image를 생성 가능 (쉬운 배포)
    • Docker Hub에 업로드하는 단위
  2. Docker Image Build
    • 애플리케이션을 image의 형태로 변경하는 과정
  3. Docker Container
    • 보유한 Docker Image를 실행해 사용 가능한 형태
    • Docker 내부 네트워크를 보유, 해당 IP 주소를 통해 통신
  4. Docker Compose
    • Docker Image를 Docker Container로 실행하는 과정
    • Container 실행에 필요한 여러 정보를 파일에 저장해 자동화가 가능함 (docker-compose.yml)
    • Ex. 애플리케이션과 연결할 포트 번호, DB 이름, host 이름, 비밀번호, ...
  5. Docker Hub
    • Github와 같은 개념, image를 손쉽게 공유할 수 있다.
    • 로컬에 image가 없더라도 public image의 정보를 기반으로 새로운 custom image를 생성하는 것이 가능하다.
      • Ex. node 18 이미지 기반의 NestJS 백엔드 애플리케이션 이미지 빌드

 

다음 글에서 자주 사용하는 Docker 명령어를 정리해놓겠다.

반응형

관련글 더보기