docker.withRegistry failed to login with password starts with '$' character.
steps { script { docker.withRegistry(env.DOCKER_REGISTRY_URL, env.DOCKER_REGISTRY_CREDENTIALS_ID) { docker.image(env.DOCKER_IMAGE_NAME_WITH_TAG).push() } } {{ }}}
In case anyone runs across this, I've opened a PR (https://github.com/jenkinsci/docker-commons-plugin/pull/86) to solve this issue. The artifact from that PR build can be manually installed in Jenkins until it's merged or fixed in some other way (https://ci.jenkins.io/job/Plugins/job/docker-commons-plugin/job/PR-86/1/artifact/org/jenkins-ci/plugins/docker-commons/1.17-rc347.f3e1aa3e5799/docker-commons-1.17-rc347.f3e1aa3e5799.hpi).