Proxmox LXC 설정

Proxmox LXC 설정

환경: Proxmox 7.3.x

Proxmox를 현재 22/12월 최신인 7.3.x으로 업그레이드 했는데 LXC에서 도커가 실행 안되는 문제가 발생하였다.

에러메시지는 다음과 같았다.

failed to register layer: ApplyLayer exit status 1 stdout: stderr: unlinkat /var/log/apt: invalid argument

찾아보니 원인은 docker를 사용할 때 overlayfs를 사용하지 못해서 발생한 것이였다.

해결 방법으로는 docker의 FS을 변경하면 된다. 하지만 FS은 다음의 문제가 있다.

  1. 도커에서 사용하는 파일 시스템을 vfs로 변경. 하지만 deep clone을 하기 때문에 용량 많이 사용하고 느리다.
  2. Overlayfs 사용. Overlayfs는 shallow copy를 하기에 빠르고 용량도 적게 사용하는 등 장점이 있지만 Proxmox LXC에서는 사용 못한다.

해결 방법으로는 Fuse-overlayfs를 사용하면 된다.

  1. Proxmox의 LXC setting에서 features: fuse=1 를 enable한다.
  2. 다음과 같이 Fuse-overlayfs 사용한다.
# fuse-overlayfs 사용 시
sudo apt install fuse-overlayfs

systemctl stop docker
vim /etc/docker/daemon.json
{
  "storage-driver": "fuse-overlayfs"
}

참고로 vfs를 사용하고 싶다면 "storage-driver": "vfs" 으로 변경하면 된다.

Ref: https://theorangeone.net/posts/docker-lxc-storage/