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