user77906: When I issue docker stop <id>, the process doesn't exit cleanly and bitcoind has to roll-forward blocks on the next startup. 
018-03-04 04:15:25 Rolling forward 0000000000000000001728efc81b210835048a7321ba3ec93197f698fac080ab (511863)
2018-03-04 04:15:26 Rolling forward 0000000000000000002be2e2792facd65e2358f874bc48f6410b80ecc8a6e756 (511864)
2018-03-04 04:15:26 Rolling forward 0000000000000000004740c4832b47a1c852db87cf4b9aea559db8712d2971a5 (511865)

This seems to be an issue with the dbcache not being written to disk prior to exit. I'm not sure if it's issuing a SIGTERM and then SIGKILL. 
What is the best way to stop bitcoind to prevent any database related issues?

user3697: Best way to stop bitcoind is either by calling the JSONRPC interface with the stop command or by issuing a SIGTERM or SIGHUP.
But it may take a couple of seconds to shut down Bitcoin Core since it eventually has to write larger amount of data (time depends on your dbcache, disk-speed, mempool size, etc.).
So the environment layer (docker in your case) must be capable to take this into account (a slow process shutdown).

77906: <p>When I issue <code>docker stop &lt;id&gt;</code>, the process doesn't exit cleanly and <code>bitcoind</code> has to roll-forward blocks on the next startup. </p>

<pre><code>018-03-04 04:15:25 Rolling forward 0000000000000000001728efc81b210835048a7321ba3ec93197f698fac080ab (511863)
2018-03-04 04:15:26 Rolling forward 0000000000000000002be2e2792facd65e2358f874bc48f6410b80ecc8a6e756 (511864)
2018-03-04 04:15:26 Rolling forward 0000000000000000004740c4832b47a1c852db87cf4b9aea559db8712d2971a5 (511865)
</code></pre>

<p>This seems to be an issue with the <code>dbcache</code> not being written to disk prior to exit. I'm not sure if it's issuing a SIGTERM and then SIGKILL. </p>

<p>What is the best way to stop bitcoind to prevent any database related issues?</p>
 3697: <p>Best way to stop <code>bitcoind</code> is either by calling the JSONRPC interface with the <code>stop</code> command or by issuing a <code>SIGTERM</code> or <code>SIGHUP</code>.</p>

<p>But it may take a couple of seconds to shut down Bitcoin Core since it eventually has to write larger amount of data (time depends on your dbcache, disk-speed, mempool size, etc.).</p>

<p>So the environment layer (docker in your case) must be capable to take this into account (a slow process shutdown).</p>
