Ubuntu 24.04에서 Docker 설치 및 설정 가이드
Docker는 컨테이너 기반 가상화 기술로, 개발 환경을 효율적으로 관리할 수 있는 도구입니다. 이 가이드에서는 Ubuntu 24.04 LTS에서 Docker 설치부터 고급 설정까지 모든 과정을 상세히 설명합니다.
📦 Docker 설치
1. 시스템 패키지 업데이트
sudo apt update && sudo apt upgrade -y
2. 필수 패키지 설치
sudo apt install -y \
ca-certificates \
curl \
gnupg \
lsb-release
3. Docker 공식 GPG 키 추가 (강화된 보안 설정)
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
| sudo gpg --batch --yes --dearmor -o /etc/apt/keyrings/docker.gpg
4. APT 저장소 등록
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
5. Docker 엔진 설치
sudo apt update
sudo apt install -y \
docker-ce \
docker-ce-cli \
containerd.io \
docker-buildx-plugin \
docker-compose-plugin
6. 설치 확인 및 버전 체크
docker --version && docker compose version
결과예시)
Docker version 27.5.1, build 9f9e405
Docker Compose version v2.32.4
7. 사용자 권한 설정 (보안 주의)
sudo usermod -aG docker $USER
echo "⚠️ 반드시 로그아웃 후 재접속하거나 'newgrp docker' 명령어 실행 필요"
🔧 Docker 고급 설정
데이터 저장 경로 변경 (기존 데이터 마이그레이션)
- 서비스 정지 및 데이터 백업
sudo systemctl stop docker sudo rsync -avx /var/lib/docker/ /mnt/docker-data
- 디렉토리 권한 설정
sudo chmod -R 700 /mnt/docker-data sudo chown -R root:root /mnt/docker-data # Docker 데몬 권한에 맞춤
- 데몬 설정 파일 수정
방법1. /etc/docker/daemon.json
파일 수정 (권장)
{
"data-root": "/mnt/docker-data",
"storage-driver": "overlay2"
}
방법2. /lib/systemd/system/docker.service 파일 수정 ( 구 버전에서 사용하던 방법)
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --data-root=/path/to/new/data-root
- 서비스 재시작 및 확인
sudo systemctl daemon-reload sudo systemctl start docker docker info | grep "Docker Root Dir"
🚀 Docker Compose 심화 사용법
버전 호환성 확인
docker compose version
# Plugin 방식 (현재 가이드) vs Standalone docker-compose 차이점 설명
샘플 Compose 파일 (Nginx + MySQL)
version: '3.8'
services:
web:
image: nginx:alpine
ports:
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
depends_on:
- db
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: example
volumes:
- mysql_data:/var/lib/mysql
volumes:
mysql_data:
Compose 명령어 요약
| 명령어 | 설명 |
|——–|——|
| docker compose up -d
| 백그라운드 실행 |
| docker compose logs -f
| 실시간 로그 확인 |
| docker compose config
| 설정 파일 검증 |
| docker compose pull
| 최신 이미지 다운로드 |
🔒 보안 강화 설정
- Rootless 모드 설치 (선택사항)
sudo apt install -y uidmap dockerd-rootless-setuptool.sh install
- 컨테이너 보안 프로필 적용 예시
{ "userns-remap": "default", "no-new-privileges": true }
🚨 문제 해결 가이드
일반적인 이슈 대처법
- 권한 오류 발생 시
sudo chmod 666 /var/run/docker.sock # 임시 해결 (보안 주의)
- 데몬 로그 확인
journalctl -u docker.service --since "10 minutes ago"
- 저장소 초기화
sudo rm -rf /var/lib/docker sudo systemctl restart docker
댓글남기기