This procedure updates Portainer to the latest version. It pulls portainer/portainer-ce:latest, stops/removes the old container, and recreates it with the same /data volume—your settings are preserved.
First things first: make a backup of your Portainer data.
Back up Docker volume (“portainer_data”)
mkdir -p backups && docker run --rm -v portainer_data:/data:ro -v "$PWD/backups:/backup" alpine sh -c "tar -czf /backup/portainer-data-$(date +%F_%H-%M-%S).tgz -C / data"
Code-Sprache: PHP (php)
Back up a bind mount
mkdir -p backups && tar -czf "backups/portainer-data-$(date +%F_%H-%M-%S).tgz" -C /srv/portainer data
Code-Sprache: JavaScript (javascript)
Quick integrity check
tar -tzf backups/portainer-data-*.tgz | head
Now let’s start…
Check your Portainer container name.
By default it’s portainer; if yours is different, adjust the commands accordingly.
docker volume ls
Stop and remove the container:
docker stop portainer
docker rm portainer
Pull latest container:
docker pull portainer/portainer-ce
Run the latest container:
docker run -d -p 8000:8000 -p 9000:9000 -p 9443:9443 \
--name=portainer \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
--restart=always \
portainer/portainer-ceCode-Sprache: JavaScript (javascript)
done

