Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker容器与137一起退出_Docker_Docker Compose_Raspbian - Fatal编程技术网

Docker容器与137一起退出

Docker容器与137一起退出,docker,docker-compose,raspbian,Docker,Docker Compose,Raspbian,我在树莓皮上运行了几个docker容器。过了一会儿,两个容器带着137退出 137是OOM(内存不足)或Sigterm。就我在申请表中所知,我不会发送Sigterm。我用docker stats记录了内存使用情况,内存也在边界之内: CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O

我在树莓皮上运行了几个docker容器。过了一会儿,两个容器带着
137
退出

137
是OOM(内存不足)或Sigterm。就我在申请表中所知,我不会发送Sigterm。我用
docker stats
记录了内存使用情况,内存也在边界之内:

CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
646046130d91        app_gui      0.01%               1.828MiB / 3.814GiB   0.05%               233kB / 229kB       5.14MB / 4.1kB      2
36a212620e76        app_core     78.39%              190.7MiB / 3.814GiB   4.88%               542kB / 448kB       53.7MB / 4.1kB      24
8b1cb459328d        mongo               0.80%               30.04MiB / 3.814GiB   0.77%               332kB / 452kB       61.9MB / 15.7MB     21
dfe65081e256        watchtower          0.00%               5.105MiB / 3.814GiB   0.13%               22kB / 1.18kB       9.49MB / 0B         10
CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
646046130d91        app_gui      0.00%               1.77MiB / 3.814GiB    0.05%               234kB / 229kB       5.14MB / 4.1kB      2
36a212620e76        app_core     0.00%               0B / 0B               0.00%               0B / 0B             0B / 0B             0
8b1cb459328d        mongo               0.00%               0B / 0B               0.00%               0B / 0B             0B / 0B             0
dfe65081e256        watchtower          0.00%               5.105MiB / 3.814GiB   0.13%               22.4kB / 1.18kB     9.49MB / 0B         10
Dockerfile:

FROM arm32v7/node
ENV NODE_VERSION 11.15.0
WORKDIR ./

# install dependencies
RUN apt-get update;\
    apt-get install qemu qemu-user-static binfmt-support -y;\
    apt-get install nano -y;\
    apt-get install i2c-tools -y;

# nodejs packages
# A wildcard is used to ensure both package.json AND package-lock.json are copied
# where available (npm@5+)
COPY package*.json ./
RUN npm install --only=production

# copy app
COPY  src/ ./

# add logs folder
RUN mkdir -p /logs/

# wait for mongoDB launch
ADD wait /wait
RUN chmod +x /wait

EXPOSE 3000

STOPSIGNAL SIGTERM

CMD wait && npm run start
我有四个容器。通常情况下,内核会中断,我注意到,
mongo
core
有时会同时停止
core
依赖于
mongo
,但是
gui
依赖于
core
(并且没有崩溃),所以我不确定是否有一个触发了另一个的退出

core
的docker日志仅说明: `以代码137退出``

我在应用程序中添加了SIGTERM的侦听器,但没有向日志添加任何内容:

  process.on('SIGTERM', () => {
    console.log('Received SIGTERM shutting down');
    server.close( () => {
      process.exit(0);
    });
  });
问题:我如何调试它?我尝试了docker inspect,但我不确定我在找什么

编辑:

我的应用程序内存泄漏,但目前速度非常缓慢。不过,在容器退出之前,内存似乎仍然正常

命令:

while true; do { printf "\n===docker====\n" && docker stats -a --no-stream && printf "\n----free----\n" && free && printf "\n----top----\n" && top -n 1 -b | grep Mem; } >> stats.txt; done
输出:

===docker====
    CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
41a88987cec4        app_gui      0.00%               1.715MiB / 3.814GiB   0.04%               634kB / 2.93MB      7.85MB / 0B         2
e7f90e0adaf2        app_core     74.80%              181.3MiB / 3.814GiB   4.64%               942kB / 479kB       26MB / 4.1kB        24
aebb3307cbfa        mongo               0.88%               29.9MiB / 3.814GiB    0.77%               330kB / 856kB       25.5MB / 36.2MB     21
7251a48141c5        watchtower          0.00%               4.34MiB / 3.814GiB    0.11%               19kB / 689B         631kB / 0B          9

----free----              total        used        free      shared  buff/cache   available
Mem:        3999784      704444     2733448        8864      561892     3161648
Swap:        102396           0      102396

----top----
    MiB Mem :   3906.0 total,   2668.6 free,    687.3 used,    550.1 buff/cache
MiB Swap:    100.0 total,    100.0 free,      0.0 used.   3088.1 avail Mem

===docker====
    CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
41a88987cec4        app_gui      0.00%               1.672MiB / 3.814GiB   0.04%               635kB / 2.93MB      7.85MB / 0B         2
e7f90e0adaf2        app_core     100.01%             84.27MiB / 3.814GiB   2.16%               942kB / 479kB       26MB / 4.1kB        15
aebb3307cbfa        mongo               1.69%               29.88MiB / 3.814GiB   0.76%               330kB / 856kB       25.5MB / 36.2MB     21
7251a48141c5        watchtower          0.00%               4.238MiB / 3.814GiB   0.11%               19kB / 689B         631kB / 0B          9

----free----              total        used        free      shared  buff/cache   available
Mem:        3999784      254364     3179764        8792      565656     3612488
Swap:        102396           0      102396

----top----
    MiB Mem :   3906.0 total,   3105.0 free,    248.1 used,    552.9 buff/cache
MiB Swap:    100.0 total,    100.0 free,      0.0 used.   3528.1 avail Mem

===docker====
    CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
41a88987cec4        app_gui      0.00%               1.672MiB / 3.814GiB   0.04%               635kB / 2.93MB      7.85MB / 0B         2
e7f90e0adaf2        app_core     0.00%               0B / 0B               0.00%               0B / 0B             0B / 0B             0
aebb3307cbfa        mongo               0.74%               29.83MiB / 3.814GiB   0.76%               330kB / 856kB       25.5MB / 36.2MB     15
7251a48141c5        watchtower          0.00%               4.238MiB / 3.814GiB   0.11%               19kB / 689B         631kB / 0B          9

----free----              total        used        free      shared  buff/cache   available
Mem:        3999784      252176     3180248        8792      567360     3614564
Swap:        102396           0      102396

----top----
    MiB Mem :   3906.0 total,   3105.1 free,    246.8 used,    554.1 buff/cache
MiB Swap:    100.0 total,    100.0 free,      0.0 used.   3529.3 avail Mem 
有趣的是,在容器退出之前,CPU使用率低于100%。我知道当出现泄漏时,Nodejs垃圾收集器会增加

docker系统df

TYPE                TOTAL               ACTIVE              SIZE                RECLAIMABLE
Images              13                  4                   2.547GB             1.994GB (78%)
Containers          4                   3                   4.171kB             4.169kB (99%)
Local Volumes       6                   2                   0B                  0B
Build Cache         0                   0                   0B                  0B
编辑(2)

还有另一个度量,这一次CPU使用率很高,但在容器退出之前不超过100%:

===docker====
    CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
41a88987cec4        app_gui      0.00%               1.672MiB / 3.814GiB   0.04%               748kB / 2.93MB      7.85MB / 0B         2
e7f90e0adaf2        app_core     76.62%              183.9MiB / 3.814GiB   4.71%               503kB / 205kB       26.4MB / 4.1kB      24
aebb3307cbfa        mongo               0.70%               30.36MiB / 3.814GiB   0.78%               770kB / 1.4MB       25.5MB / 38.3MB     20
7251a48141c5        watchtower          0.00%               3.742MiB / 3.814GiB   0.10%               130kB / 689B        823kB / 0B          11

----free----
    total        used        free      shared  buff/cache   available
Mem:        3999784      678460     2750504       17064      570820     3177724
Swap:        102396           0      102396

----top----
    MiB Mem :   3906.0 total,   2699.5 free,    663.5 used,    543.1 buff/cache
MiB Swap:    100.0 total,    100.0 free,      0.0 used.   3104.1 avail Mem

===docker====
    CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
41a88987cec4        app_gui      0.00%               1.668MiB / 3.814GiB   0.04%               748kB / 2.93MB      7.85MB / 0B         2
e7f90e0adaf2        app_core     80.70%              2.621MiB / 3.814GiB   0.07%               505kB / 207kB       26.6MB / 8.19kB     0
aebb3307cbfa        mongo               1.16%               30.32MiB / 3.814GiB   0.78%               772kB / 1.4MB       25.6MB / 38.3MB     15
7251a48141c5        watchtower          0.00%               3.684MiB / 3.814GiB   0.09%               130kB / 689B        823kB / 0B          11

----free----
    total        used        free      shared  buff/cache   available
Mem:        3999784      233208     3160796       17000      605780     3625148
Swap:        102396           0      102396

----top----
    MiB Mem :   3906.0 total,   3084.8 free,    228.3 used,    592.9 buff/cache
MiB Swap:    100.0 total,    100.0 free,      0.0 used.   3539.8 avail Mem

===docker====
    CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
41a88987cec4        app_gui      0.00%               1.668MiB / 3.814GiB   0.04%               748kB / 2.93MB      7.85MB / 0B         2
e7f90e0adaf2        app_core     0.00%               0B / 0B               0.00%               0B / 0B             0B / 0B             0
aebb3307cbfa        mongo               2.13%               30.32MiB / 3.814GiB   0.78%               773kB / 1.4MB       25.6MB / 38.3MB     15
7251a48141c5        watchtower          0.00%               3.684MiB / 3.814GiB   0.09%               130kB / 689B        823kB / 0B          11

----free----
    total        used        free      shared  buff/cache   available
Mem:        3999784      233492     3156400       16992      609892     3625140
Swap:        102396           0      102396

----top----
    MiB Mem :   3906.0 total,   3082.3 free,    228.1 used,    595.6 buff/cache
MiB Swap:    100.0 total,    100.0 free,      0.0 used.   3540.1 avail Mem 

应该有足够的内存,容器使用
4.71%
的内存,并且没有交换。

您可以运行
docker system df
并用输出更新post吗?此外,您还应该检查raspberry pi上的内存使用情况,因为我很确定它没有足够的RAM来运行您想要的所有容器。还可以尝试运行基本的管理命令,如
free
,并检查主机是否内存不足。内核OOM杀手可以像其他任何东西一样收获Docker进程,这表现为代码137。