Troubleshooting Stacks & Services
Updating a Service to the latest image is not working
If you tried to update a Service to the latest image and its not working, with an error
failure no such image these are the most common root causes and how to troubleshoot them.
Use of a private registry that is not supported
At the time of this post, we have confirmed that updating Services works with the following private registries: Quay.io, Azure, Gitlab.com, Selfhosted GitLab, Artifactory and Docker v2. GitHub package registry is not currently supported.
Use of a temporary token that has expired
Portainer requires access to the private registry at the time you try to update a Service to the latest image. If you have added the private registry with a token that has expired, then it won't work.
Troubleshooting: Check the token is not expired in your registry or try logging in via the Docker CLI. If the token is expired, generate a new one in your registry (preferably one that is not set to expire). Next, click on the registry in Portainer, enter the new token in the password field and then click update.
Use of an insecure registry (HTTP) or self-signed certs
If you are using a registry with HTTP, or with self-signed certs Docker sees this as insecure by default and will refuse actions against it.
Troubleshooting: Follow the official Docker documentation on how to remedy this. Make sure you repeat on all nodes (if you are using docker swarm).
Stack or service was deployed without --with-registry-auth flag
If a stack or service is deployed without the
--with-registry-auth flag then a service update will fail with the
no such image error message.
Troubleshooting: Check the tools/scripts you are using to deploy your stack/service to make sure they are using this flag. An example is the docker_stack module in Ansible where this flag is set to false by default (unless overridden).
Stacks are showing as Limited in Portainer
A Limited stack as the name implies has limited functionality. This includes browsing through to related services from the Stack Details view, or deleting the stack. A Total control stack in Portainer brings you added functionality such as editing and updating a stack, duplicating the stack or migrating the stack. A stack could show as Limited in Portainer, either because the stack was deployed outside of Portainer (Portainer doesn’t have a copy of the Stack file) or because the Portainer database has been lost.
Troubleshooting: Deploy the stack within Portainer so that the file is kept in the database & ensure that the database is persisted and/or highly available. You can see how to persist Portainer data here. For Docker swarm users, you should also make sure that Portainer stays on the node where your db volume is (unless you are using HA storage like NFS). See how to keep Portainer on one node here.