Update production server (apache, wordpress, mysql) on docker containers, from staging server
My thoughts based on your described scenario are:


Your tarball strategy, as described, might sound safe but is prone to risk in my opinion. A better approach is to version-control the WP files you will modify, while keeping the core intact and within the Docker container. Here's a reference I have used in the past that talks about version-control strategies for WP. You would of course need to spend some time and understand which folders/files to version-control for your specific site.
The version-controlled files would be checked out on the host machine (which runs Docker) and be volume-mounted within your Docker container.
Everytime your changes are validated in Stage they get pushed to Git. Getting these changes into Prod would essentially be a git pull.
If you wish you might also use a tool like composer as part of your deployment workflow. A dependency manager should be part of any deployment worklow.


I would also recommend tying all this together with a tool like Ansible, i.e. use Ansible to


update local git repo
run the composer bits
ensure docker container is running


Disclaimer: Although I've worked on DevOps automation for Wordpress sites, I am by no means an expert on Wordpress, so suggestions and clarifications welcome.

Hope this helps.