우분투에서 snap 으로 docker 를 설치했다가 후회한 얘기
우분투를 쓸때는 apt 로만 패키지 관리를 해왔는데 작년 처음 snap 을 써봤다.
작년 사내 테스트용 (물리) 서버에 우분투 24.04.1 LTS 설치하고 snap 으로 docker 설치해서 여러 모니터링 올리고 어제까지도 잘 쓰고 있었는데, 갑자기 오늘 docker ps 명령이 오류가 나서 봤더니,
$ docker ps
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
docker -D ps # 디버깅
time="2025-03-12T11:22:58+09:00" level=debug msg="otel error" error="1 errors occurred detecting resource:\n\t* conflicting Schema URL: https://opentelemetry.io/schemas/1.21.0 and https://opentelemetry.io/schemas/1.26.0"
실행도 안되고, 모든 컨테이너는 날라간 상태이고 도커 또한 동작하지 않는다. 디버깅 메시지 보면 스키마 버전 충돌이라고 나온다.
자세한 원인분석을 위해 ChatGPT 의 도움을 받았더니
Docker 데몬이 OTel(OpenTelemetry)과 충돌하여, 스키마 버전(1.21.0 vs. 1.26.0)이 일치하지 않아 발생하는 문제입니다. 주로 Snap의 자동 업데이트 중, Docker의 내부 OTel 설정이 깨졌을 때 나타나는 문제입니다.
snap 자동 업뎃중에 OTel 충돌로 스키마 버전 불일치 문제라고 한다.
스냅 방식 대신 apt 기반 설치가 더욱 안정적이라고 권장해주길래, (새로운 방식이라 일부러 snap 으로 선택했었는데) 다음부터는 그냥 apt 방식으로 설치하기로 했다. (docker 한정)
물론 이번에도 apt 방식으로 변경해서 설치.
sudo snap remove docker
sudo apt update
sudo apt install -y docker.io
sudo systemctl start docker
sudo systemctl enable docker
sudo systemctl status docker
테스트 서버 관리에 시간을 빼앗긴 후에야, 테스트 서버도 백업해 둬야겠다 싶다. 모니터링 설정이랑 빌드 설정이랑 도커 설정 다 백업해 놔야겠다.