시스템 관리/docker

Docker "Failed to start docker.service: Unit docker.service not found" 오류

코딩금융치료 2025. 8. 5. 10:02

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는 일반 사용자/테스트 용도로는 괜찮을 수 있지만, 실제 개발/운영 환경에서는 문제 발생 가능성이 높기 때문에 비추천