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!
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.
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.
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.
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.
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 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.
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).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With