Docker 기본

Docker란?

Docker는 애플리케이션을 컨테이너(Container)로 패키징하여 배포하고 실행할 수 있게 해주는 플랫폼이다. 컨테이너는 애플리케이션과 그 실행에 필요한 모든 것(라이브러리, 설정 파일, 런타임 등)을 하나로 묶은 가벼운 실행 환경이다.

주요 개념

  • 이미지(Image): 컨테이너를 만들기 위한 템플릿 (읽기 전용)
  • 컨테이너(Container): 이미지를 실행한 인스턴스 (실행 중인 애플리케이션)
  • Dockerfile: 이미지를 만드는 데 사용하는 설정 파일
  • Docker Hub: 공개 이미지 저장소

Docker의 장점

  • 일관성: 개발, 테스트, 프로덕션 환경이 동일하게 동작
  • 격리: 각 컨테이너는 독립적으로 실행되어 충돌 방지
  • 가벼움: 가상머신보다 훨씬 가볍고 빠름
  • 이식성: 어떤 환경에서든 동일하게 실행 가능
  • 확장성: 쉽게 복제하고 배포 가능

우분투에서 Docker 설치

우분투에서 도커 설치

1. 충돌이 일어날 수 있는 패키지 모두 제거

sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc | cut -f1)

2. Docker 공식 저장소 추가

# Add Docker's official GPG key:
sudo apt update
sudo apt 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:
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Signed-By: /etc/apt/keyrings/docker.asc
EOF

sudo apt update

3. Docker Engine 설치

sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

4. Docker 서비스 시작 및 활성화

# 서비스 상태 확인
sudo systemctl status docker

# Docker 서비스 시작
sudo systemctl start docker

# 부팅 시 자동 시작 설정
sudo systemctl enable docker

5. 설치 확인

# Docker 버전 확인
docker --version

# Hello World 컨테이너 실행 (테스트)
sudo docker run hello-world

6. sudo 없이 Docker 사용하기 (선택사항)

# 현재 사용자를 docker 그룹에 추가
sudo usermod -aG docker $USER

# 재시작
reboot

# 사용자가 속한 그룹 확인 (docker)가 있어야 함
groups

7. docker system info

docker system info
docker system df

우분투에서 Docker 삭제

docker system prune -a --volumes --all --force
sudo apt purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
sudo rm /etc/apt/sources.list.d/docker.sources
sudo rm /etc/apt/keyrings/docker.asc