728x90

개요

WSL2 Ubuntu 환경에서 Spring Boot 프로젝트를 빌드하던 중 다음과 같은 오류가 발생했다. 

$ docker-compose up -d
Error response from daemon: client version 1.42 is too old. 
Minimum supported API version is 1.44, please upgrade your client to a newer version

환경 정보

  • OS: WSL2 Ubuntu 24.04
  • Docker Desktop: 27.5.1 (Windows)
  • Docker CLI (WSL): 1.42 (구버전)
  • Spring Boot: 3.5.4

원인

Docker Desktop과 WSL CLI 버전 불일치

 

WSL + Docker Desktop 환경에서는 두 가지 Docker 컴포넌트가 존재한다.

  1. Docker Desktop (Windows): 최신 버전 (27.5.1)
    • 실제 컨테이너를 실행하는 엔진
  2. Docker CLI (WSL): 구버전 (1.42)
    • WSL에서 명령어를 입력받는 클라이언트
  • 문제는 WSL의 Docker CLI가 오래되어 Docker Desktop의 최신 API(1.44)와 통신할 수 없다는 것이었다.

해결

Docker CLI 업그레이드

WSL 내부의 Docker CLI를 최신 버전으로 업데이트한다.

 

1. 기존 Docker 패키지 제거

  • 오래된 Docker 패키지들을 제거하여 깨끗한 설치 환경을 만든다.
sudo apt-get remove docker docker-engine docker.io containerd runc

 

2. 필수 패키지 설치 -

  • ca-certificates: 안전한 HTTPS 연결을 위한 인증서
  • curl: 파일 다운로드 도구
  • gnupg: 암호화 키 관리
  • lsb-release: Ubuntu 버전 정보 확인
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg lsb-release

 

3. Docker GPG 키 추가

  • Docker 공식 저장소의 진위를 확인하기 위한 보안 키를 설치한다.
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
  sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

 

4. Docker 저장소 추가

  • Ubuntu에게 Docker를 다운로드할 공식 저장소를 알려준다.
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 CLI 설치

sudo apt-get update
sudo apt-get install -y docker-ce-cli

 

6. 설치 확인 및 실행

docker --version

docker compose up -d  # 주의: 'docker-compose'가 아님
docker ps
728x90

+ Recent posts