Docker上的无头铬失败

时间:2019-05-20 09:43:23

标签: docker chromium

在某些站点中,无头Chromium在Docker容器中运行时会失败:

[0520/093103.024239:ERROR:platform_shared_memory_region_posix.cc(268)] Failed to reserve 16728064 bytes for shared memory.: No space left on device (28)
[0520/093103.024591:ERROR:validation_errors.cc(76)] Invalid message: VALIDATION_ERROR_UNEXPECTED_NULL_POINTER (null field 1)
[0520/093103.024946:FATAL:memory.cc(22)] Out of memory. size=16723968

我应该如何调整Docker来解决此问题?

1 个答案:

答案 0 :(得分:1)

如第1行所述,您的共享内存用完了。

[0520/093103.024239:ERROR:platform_shared_memory_region_posix.cc(268)] Failed to reserve 16728064 bytes for shared memory.: No space left on device (28)

这由/dev/shm处理,在Docker中将其设置为默认值64mb,对于现代Web应用程序来说并不多。

有关/dev/shm的上下文,请参见此处https://superuser.com/questions/45342/when-should-i-use-dev-shm-and-when-should-i-use-tmp

选项1:

使用--disable-dev-shm-usage

运行chrome

选项2:

/dev/shm的大小设置为合理的数量docker run -it --shm-size=1g,用您想要的任意数量替换1g