Docker가 snap 기반으로 설치 되어 서비스가 정상 기동이 되지 않을 경우 해결 방법
1. docker가 Snap인지 확인
#which docker
/snap/bin/docker로 나오면 Snap 기반
2. Snap으로 설치된 Docker 제거
sudo snap remove docker
3. Snap 대신 Docker 공식 설치로 전환
- Docker 공식 리포지터리를 통한 설치 (Ubuntu 24.04 기준)
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
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
4. 서비스 기동
sudo systemctl enable --now docker
5. 도커 테스트
sudo docker run hello-world
> Hello from Docker !
Snap으로 Docker를 사용할 때의 주요 문제점
| 항목 | 문제 내용 |
| 보안 격리 | Snap 앱은 sandbox 환경에서 실행되므로, 시스템 리소스 접근(예: /var/run/docker.sock, 특정 마운트 경로 등)에 제한이 있습니다. |
| 경로 문제 | docker.sock 파일이 표준 경로(/var/run/docker.sock)가 아닌 Snap 전용 경로에 위치하기 때문에, 기존 스크립트나 도구들이 정상 작동하지 않을 수 있습니다. 예: docker-compose, Portainer, Jenkins 등과의 연동 실패. |
| 도커 Compose 연동 문제 | docker-compose가 Docker 데몬에 접근하지 못해 Cannot connect to the Docker daemon 등의 오류가 발생할 수 있습니다. |
| 서비스 제어 불가 | 일반적으로 사용하는 systemctl start docker 등의 명령어가 작동하지 않으며, 대신 snap start docker 등의 Snap 전용 명령어를 사용해야 합니다. |
| 서드파티 도구와 호환성 저하 | 일부 서드파티 툴은 Snap Docker를 인식하지 못하거나, 특수 경로 문제로 인해 실행에 실패합니다. |
| 리눅스 커널 기능 제한 | Snap 환경의 제한으로 인해 Cgroups, OverlayFS 등 특정 커널 기능 사용이 제한되어 Docker의 일부 기능이 정상적으로 작동하지 않을 수 있습니다. |
| 버전 제어 어려움 | Docker 공식 릴리스와 버전 차이가 있으며, 특정 버전으로 고정하기도 어렵습니다. |
| 볼륨 및 마운트 제한 | Snap 외부 경로에 대한 볼륨 마운트 시 권한 이슈가 발생하며, 별도의 권한 부여가 필요하거나 마운트에 실패할 수 있습니다. |
Snap Docker는 일반 사용자/테스트 용도로는 괜찮을 수 있지만, 실제 개발/운영 환경에서는 문제 발생 가능성이 높기 때문에 비추천