docker stop my_container sends SIGTERM to my_container, waits an amount of time configured by the --time flag, and, if the container hasn't stopped, sends SIGKILL to the container.
It'd be nice to have options to configure what initial signal is used. E.g., docker stop --signal=INT my_container will instead send SIGINT to my_container, wait 10 seconds, and then send SIGKILL.