Ubuntu 16.04: Docker container cannot allocate memory

Yesterday i faced a problem trying to access one of my web pages in my server (At that time, no monitoring service had been installed in the server).

  1. I was trying to access my Blog, but i was getting 503 error
  2. Then i tried to access via ssh. And the connection could not be stablished
  3. Then i logged into my Digital Ocean’s account and i saw the graphs of the server with a CPU usage of 100% and a Memory usage of 66%. That was strange

Then, i was trying to remember, what were my last movements throug the server,  and i realized that the last thing i was doing, was to review my docker containers.

Trying to fix it as soon as possible, i reboot the server and expanded the ram memory (i didn’t know what was the root cause of the problem at that time).

Today, i needed to be sure of what had been the main problem, and for that purpose i tried the following:

First i review my logs:

sudo nano /var/log/syslog

Since Digital Ocean’s graphs showed the probem was from 20:48 to 23:49 (UTC-4):

20:48 (UTC-4) = 00:48 UTC

23:49 (UTC-4) = 03:49 UTC

I realized that “syslog” file hadn’t that interval.

Then i reviewed:

sudo nano /var/log/syslog.1

But i found a huge amount of UFW messages (that was ok, since my UFW was working and blocking access to several ports of the server)

So, in order to avoid those message and to refine the output of the log:

# Avoid some string:
sudo grep -v "UFW" /var/log/syslog

# Avoid some string and filter
sudo grep -v "UFW" /var/log/syslog | grep "dockerd"

# Avoid: UFW & level=info and level=warning
# Filter dockerd
sudo grep -v "UFW" /var/log/syslog.1 | grep -v "level=info" | grep -v "level=warning" | grep "dockerd"

Then, i realized that he root cause was an error with my dockerd:

level=error msg=”libcontainerd: error restarting containerd: fork/exec /usr/bin/docker-containerd: cannot allocate memory”

Searching in the web, i found that was a Bug in my Kernel.

My kernel version was 4.4.0-130-generic x86_64

And the Bug was fixed for kernel 4.5

https://github.com/moby/moby/issues/18295

https://success.docker.com/article/docker-daemon-error-cannot-allocate-memory

by: Juan Pablo Donayre

Leave a Reply

Your email address will not be published. Required fields are marked *