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은 다음의 문제가 있다.
- 도커에서 사용하는 파일 시스템을 vfs로 변경. 하지만 deep clone을 하기 때문에 용량 많이 사용하고 느리다.
- Overlayfs 사용. Overlayfs는 shallow copy를 하기에 빠르고 용량도 적게 사용하는 등 장점이 있지만 Proxmox LXC에서는 사용 못한다.
해결 방법으로는 Fuse-overlayfs를 사용하면 된다.
- Proxmox의 LXC setting에서
features: fuse=1
를 enable한다. - 다음과 같이 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" 으로 변경하면 된다.