Saturday 25 April 2020

Docker tak boleh mount volume atau bindmount kat Fedora 31?

Kalau korang cuba nak mount volume atau bindmount nanti akan dapat error "cgroup mountpoint does not exist" seperti di bawah

jeffry@hulkbuster nginx]$ docker run --name mynginx2 -P -v myvol:/usr/share/nginx/html nginx 
docker: Error response from daemon: cgroups: cgroup mountpoint does not exist: unknown.
ERRO[0002] error waiting for container: context canceled

Error ini disebabkan Fedora 31 telah berubah kepada cgroup2 dan cgroup2 belum disokong olah Docker. Docker hanya boleh berfungsi dengan cgroup versi 1. cgroup atau nama panjangnya control group ialah bahagian kernel untuk menghad dan mengasiangkan resource seperti cpu, memory dan network. Oleh itu, untuk guna Docker di Fedora 31, kita kena patah balik ke cgroup versi 1. Untuk guna cgroup ini kita perlu letakan "systemd.unified_cgroup_hierarchy=0" sebagai kernel argument. Salah satu cara ialah dengan meletakan ia dia /etc/default/grub seperti dibawah:-
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="resume=/dev/mapper/fedora_localhost--live-swap rd.lvm.lv=fedora_localhost-live/root rd.lvm.lv=fedora_localhost-live/swap rhgb quiet systemd.unified_cgroup_hierarchy=0"
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true


kemudian bina semula configurasi grub
sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

kemudian reboot untuk menggunakan kernel dengan argumen yang baru
sudo reboot


lepas reboot dah boleh jalan :).

Semoga bermanfaat 

No comments:

Post a Comment

Tatacara klon pelayan di AWS lightsail

  Kadang-kala kita diminta untuk buat satu sistem baru untuk tujuan ujikaji atau percubaan fungsi baru. Jika di AWS lightsail kita boleh bua...