다음과 같이 Arch 호스트에 권한이 없는 lxc 컨테이너를 만들었습니다.
lxc-create -n test_arch11 -t download -- --dist archlinux --release current --arch amd64
그리고 도커가 실행되지 않습니다. 컨테이너 내부에서 내가 한 일은 다음과 같습니다.
- Arch 저장소에서 도커를 설치했습니다.
pacman -S docker
- hello-world 컨테이너를 실행해 보세요.
docker run hello-world
- 다음 오류 발생:
docker: 데몬의 오류 응답: OCI 런타임 생성 실패: Container_linux.go:346: 컨테이너 프로세스 시작으로 인해 "process_linux.go:297: 프로세스에 cgroup 구성 적용으로 인해 \"가 발생했습니다. mkdir /sys/fs/cgroup/cpuset/ docker: 권한 거부됨\"": 알 수 없습니다.
오류[0037] 컨테이너를 기다리는 동안 오류가 발생했습니다. 컨텍스트가 취소되었습니다.
문제는 무엇이며 컨테이너 내부에서 Docker가 작동하도록 만드는 방법은 무엇입니까?
답변1
동일한 유형의 격리(커널 네임스페이스라고도 함)를 사용 lxc
하기 때문에docker
특권이 없는lxc.
lxc 컨테이너에는 권한이 있어야 합니다.
하지만 일반 가상 머신( kvm , virtualbox , ...)에서는 docker를 실행할 수 있습니다.
답변2
grub 구성에 플래그를 추가하여 문제를 해결했습니다. 출처는 다음과 같습니다.https://fedoraproject.org/wiki/Changes/CGroupsV2#Upgrade.2Fcompatibility_impact
이 순서대로:
1-/etc/default/grub 편집
2- GRUB_CMDLINE_LINUX 라인에 다음 플래그를 추가합니다: systemd.unified_cgroup_hierarchy=0
3-그런 다음: grub2-mkconfig
4- 컴퓨터를 다시 시작하세요