If I understand correctly, the release number is assigned by the build-and-test phase, and it published the docker repo.
I assume that this release number is known one way or another by the users, since it has been published to the docker repo.
This release number is an input to the other jobs. So I suggest you make the release number an input parameter to the other jobs.
When each job runs, it needs to check that the released artifact has reached the expected "quality" level for the job. If not the jobs would fail with some meaningful error message.
The quality levels would be 1) built and tested, 2) sandbox, 3) staging, and 4) production.
In other words, deploy-to-sandbox(1.0.11) needs to check that the artifacts 1.0.11 exists in the docker repo before it attempts to deploy to sandbox.
You also need to store the quality level somewhere persistent, maybe as a property of the artifacts in the docker repo (if that is possible?).
Artifactory supports properties, or maybe you need a database.
Hope this helps at least from a conceptual point of view.
Martin