Docker Snap의 정체
Ubuntu Server OS (Minimal) 설치 중 “Featured Server Snaps”에서 docker만 선택하면, Snap 패키지 방식으로 Docker가 설치됩니다. 이는 Docker Inc.가 제공하는 공식 .deb 기반 설치(Docker CE)와는 구분됩니다. Snap 설치는 테스트/개인용에는 충분하지만, 표준화, 자동화, DevOps 연동을 고려한다면 Docker CE 설치가 권장됩니다.
| 항목 | 내용 |
|---|---|
| 설치 경로 | /snap/docker/current/... 등 |
| 실행 방식 | Snap sandbox 환경 내에서 실행 |
| 포함 기능 | docker, buildx, compose |
| containerd 경로 | Snap 내 포함, 표준 경로(/usr/bin/containerd)와 다름 |
| 장점 | 빠른 설치, 자동 업데이트 |
| 단점 | 비표준 구조, systemd 통합 문제, 외부 DevOps 도구와 호환성 낮음 |
Docker Snap 패키지 제거
shell
# Docker Snap 패키지 확인
snap list docker
# Snap 제거
sudo snap remove docker
Docker CE 설치 방법 (표준 - 자동 스크립트)
자동 설치
shell
# Docker 공식 설치 스크립트 실행
curl -fsSL https://get.docker.com | sh
# 사용자 권한 부여
sudo usermod -aG docker $USER # docker 그룹 추가
newgrp docker # 그룹 변경 즉시 적용curl: 파일 다운로드 명령f: 실패 시 에러 반환s: 진행상황 생략S: 에러는 출력L: 리다이렉션 따라감| sh: 받은 스크립트를 셸로 바로 실행
소스 확인 후 수동 실행
shell
curl -fsSL https://get.docker.com -o install-docker.sh
cat install-docker.sh # 내용 확인
bash install-docker.sh # 수동 실행
직접 작성한 설치 스크립트 사용 (예: install_docker.sh)
shell
nano install_docker.shshell
#!/bin/bash
echo "Docker 공식 설치 스크립트를 실행합니다..."
# 1. 공식 스크립트 다운로드 및 실행
curl -fsSL https://get.docker.com | sh
# 2. docker 그룹 권한 부여
sudo usermod -aG docker $USER
# 3. 그룹 적용 (재로그인 대체)
newgrp dockershell
chmod +x install_docker.sh # 실행권한 부여
./install_docker.sh # 실행
Docker CE 설치 방법 (표준 - 고급 수동 설치)
shell
# 저장소 등록 및 GPG 키 설정
sudo apt update
sudo apt install -y ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Docker 설치
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin
# 사용자 권한 부여
sudo usermod -aG docker $USER
newgrp docker| 패키지 | 설명 |
|---|---|
docker-ce | Docker Community Edition |
docker-ce-cli | Docker CLI 도구 |
containerd.io | 컨테이너 런타임 |
docker-buildx-plugin | 확장 빌더 기능 지원 |
docker-compose-plugin | docker compose 명령어 지원 (v2) |
설치 확인 및 테스트
shell
docker --version # 버전 확인
docker info # 시스템 상태 확인
docker run hello-world # 설치 테스트
※ hello-world는 자동으로 이미지 pull → container 실행 → 종료하며, 정상 설치 여부를 출력 메시지로 알려줍니다.
shell
docker ps -a # hello-world 컨테이너 확인
docker rm hello-world # 테스트 컨테이너 삭제