Я пытаюсь включить поддержку лимита Swap Docker через cloud-init, не перезагружая систему после обновления GRUB.Чтобы включить его, общие шаги:
Отредактируйте файл / etc / default / grub, добавив GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"
Обновить GRUB.
- Перезагрузка системы
Я просто хочу исключить третий шаг - перезагрузка системы, чтобы применить модификацию GRUB.Можем ли мы сделать это, используя bootcmd
или #cloud-boothook
или есть опция, подобная prebootcmd.Я пробовал что-то вроде ниже, но GRUB, кажется, не работает без перезагрузки системы.
#cloud-config
package_update: true
# Setup swap memory
disk_setup:
ephemeral0:
table_type: mbr
layout: [66, [33, 82]]
overwrite: True
fs_setup:
- device: ephemeral0.1
filesystem: ext4
- device: ephemeral0.2
filesystem: swap
mounts:
- ["ephemeral0.1", "/mnt"]
- ["ephemeral0.2", "none", "swap", "sw", "0", "0"]
# Enable Docker's swap limit support
bootcmd:
- [ sh, -c, 'sudo echo GRUB_CMDLINE_LINUX=\"cgroup_enable=memory swapaccount=1\" >> /etc/default/grub' ]
- [ sh, -c, 'sudo update-grub' ]
# Install docker and docker-compose
runcmd:
- [ sh, -c, 'curl -sSL https://get.docker.com/ | sh' ]
- [ sh, -c, 'sudo curl -L https://github.com/docker/compose/releases/download/$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep "tag_name" | cut -d \" -f4)/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose' ]
- [ sh, -c, 'sudo chmod +x /usr/local/bin/docker-compose' ]
# Add default auto created user to docker group
system_info:
default_user:
groups: [docker]