[Docker] Snap으로 설치한 Docker 의 read-only file system 오류

Woong·2025년 7월 22일
0

Docker, k8s

목록 보기
19/21

배경

Docker Compose로 Airflow를 실행하는 과정에서 아래와 같은 에러가 발생:

Error response from daemon: error while creating mount source path '/opt/airflow/plugins': mkdir /opt/airflow: read-only file system
  • 디렉토리 및 file system 점검에서는 이상이 없었음
    • 디렉토리는 이미 존재하고, chown -R 50000:0 등 권한 설정도 적절히 되어 있었으며
    • mount 상 문제도 없었음 (rw)
$ mount
/dev/nvme0n1p1 on / type ext4 (rw,relatime,discard,errors=remount-ro)
  • 원래는 정상 작동하던 환경이었지만, 갑자기 이 문제가 발생
    • (알고보니 snap 과 apt install 로 설치된 두개 docker 충돌도 있었음)

🔍 1. 원인 분석: Snap으로 설치된 Docker

$ snap list docker
Name    Version  Rev    Tracking       Publisher   Notes
docker  <version> <rev>   latest/stable  canonical✓  -
  • Snap으로 설치된 Docker는 AppArmor 기반 샌드박스 제한을 가지며, 이로 인한 문제 발생
    • /opt/airflow/plugins 경로에 접근 또는 생성 시도할 수 없으며, 이로 인한 read-only file system 에러 발생
    • 실제 파일시스템이 읽기 전용인 것이 아니라, Snap이 read-only로 마운트한 것처럼 보이게 막고 있었던 것.
Error response from daemon: error while creating mount source path '/opt/airflow/plugins': mkdir /opt/airflow: read-only file system

Snap Docker 제거

  • snap 으로 설치된 docker 제거
    • --purge 옵션을 주지 않으면 데이터를 스냅샷으로 백업하려 하여, 매우 오랜 시간 소요
sudo snap remove docker --purge

APT 기반 Docker 설치

sudo apt update
sudo apt install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

# GPG 키 추가
sudo mkdir -p /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

# Docker 설치
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin

# Docker 데몬 시작 및 활성화
sudo systemctl enable --now docker
  • Snap 제거 후 read-only file system 에러 해결되고 정상 동작

reference

0개의 댓글