Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Docker process killed with cryptic `Killed` message

Running a python script in a docker container and everything seems to be running smoothly, seeing some STDOUT messages, about 5 minutes in I get a Killed message with no further explanation and the process stops. Querying a db so could be a disk space issue, could be OOM issue. I'm not sure but I have no idea where to find logs about this kill message so I can get to the root of this problem. Any ideas where these logs are?

Running docker-machine on Mac OSX.

That's really all the message says!

root@c7b800e0f276:/opt/mymodule# python Python 2.7.13 (default, May  1 2017, 22:44:36) [GCC 4.9.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> from mymodule import model >>> model.run('2017-04-01') INFO:Deleting from input table. INFO:Inserting into input table. INFO:Querying input table for chunk. Killed root@c7b800e0f276:/opt/mymodule# exit 

Thanks!

like image 902
natsuki_2002 Avatar asked Jun 07 '17 15:06

natsuki_2002


People also ask

Why was docker killed?

This problem is related to a lack of memory in the docker desktop configuration: the different docker containers have not enough space to be allocated causing either the application to start very slowly or for some services to be killed by docker during their startup.

How do you gracefully kill a docker container?

docker rm -f The final option for stopping a running container is to use the --force or -f flag in conjunction with the docker rm command. Typically, docker rm is used to remove an already stopped container, but the use of the -f flag will cause it to first issue a SIGKILL.

How do I kill a docker process?

The docker kill subcommand kills one or more containers. The main process inside the container is sent SIGKILL signal (default), or the signal that is specified with the --signal option. You can reference a container by its ID, ID-prefix, or name.

How do I stop docker execution?

To stop one or more running Docker containers, you can use the docker stop command. The syntax is simple: $ docker stop [OPTIONS] CONTAINER [CONTAINER...] You can specify one or more containers to stop.


2 Answers

Docker for Mac limits the resource available to 2GB by default! This is too low for the app that I run. The solution is to increase the memory limit to 8GB, or however much your app needs.

(I am having similar issue albeit using a JVM application, not Python, and reached here by Google searching. From the deleted answer by @sergiu I am able to figure out the issue.)

Get started with Docker for Mac says:

Advanced

Advanced settings are:

CPUs: By default, Docker for Mac is set to use half the number of processors available on the host machine. To increase processing power, set this to a higher number; to decrease, lower the number.

Memory: By default, Docker for Mac is set to use 2 GB runtime memory, allocated from the total available memory on your Mac. To increase RAM, set this to a higher number; to decrease it, lower the number.

Swap: Configure swap file size as needed. The default is 1 GB.

like image 173
Eugene Yokota Avatar answered Sep 19 '22 15:09

Eugene Yokota


With Docker for Mac, you can get into the host VM namespace with:

docker run --net=host --ipc=host --uts=host --pid=host -it --security-opt=seccomp=unconfined --privileged --rm -v /:/host alpine /bin/sh 

Then run chroot /host to change root to the host mount. Now, you can use utilities like dmesg to check for any OOM message (like the comments to your question suggest).

like image 30
Andy Shinn Avatar answered Sep 18 '22 15:09

Andy Shinn