我通过Ubuntu 12.04安装了docker 0.11.1。 我试图在运行命令时将docker中的shmmax从固定值(32 M)更改为更大的值(1G)
sysctl -w kernel.shmmax=1073741824 error: "Read-only file system" setting key "kernel.shmmax"
这是因为/proc
被安装在容器中。
有人可以告诉我如何安装在我的容器r/w
来改变它?
我有这样的运气:
mount -o remount rw /proc/sys sysctl -w [your settings here]
如果目标是设置sysctl设置,docker已经意识到了这个问题,在1.12以上的版本中,你可以在运行一个docker容器(或者在你的compose文件中)时使用–sysctl标志,它会在运行之前设置容器中的值。
这是可悲的(尚未)集成在码头文件的语法。
docker run --sysctl kernel.shmmax=1073741824 yourimage
示例docker-compose.yml(必须使用版本2.1):
version: '2.1' services: app: sysctls: - kernel.shmmax=1073741824
你没有。 sysctl值并不局限于容器 – 它们影响整个系统,所以容器不能够改变它们。
如果要为此变量设置较高的值,请从主机系统执行此操作。