The Mailgun API doesn’t use SMTP, it uses HTTPS. That’s confusing because transactional emails do to mailgun via SMTP.
It’s not clear why Ghost doesn’t use the API for everything.
Scroll down here to find some example calls to Mailgun. Try sending a basic message through your server directly to Mailgun.
If that works, try again, but inside your Ghost container
https://documentation.mailgun.com/en/latest/api-sending.html#examples
I realize containers help with isolation and use them in production myself, but for my personal Ghost installs, I use the official instructions that forego containers. It eliminates the whole layer of bugs that could possible exist in the container configuration layer.