Back to Article List

How to update Portainer without losing anything

How to update Portainer without losing anything

Updated and tested 31 October 2026

Here's the entire Portainer update, four commands, safe to run as written if you installed with the standard names:

docker stop portainer
docker rm portainer
docker pull portainer/portainer-ce:lts
docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v portainer_data:/data \
  portainer/portainer-ce:lts

If that looks like deleting Portainer and installing it again, correct, that's exactly what a container update is. The part that makes it safe: your data never lived in the container. Users, environments, stacks and settings sit in the portainer_data volume, the stop-rm-pull-run cycle replaces only the application around them and the login page that comes back is your same Portainer, newer. Compose users get the even shorter version from the file's directory:

docker compose pull && docker compose up -d

Now the judgment that surrounds those commands, because the commands were never the hard part.

LTS or latest, decided once

Portainer publishes two tracks and your image tag picks one. The :lts tag follows the long-term support line (2.45 at the moment; my test server went to 2.45.3 on 31 October 2026), fed with fixes rather than experiments, and it's where servers that matter belong. The :latest tag tracks short-term releases with the newest features and, historically, the newest regressions; the "failed to find local environment" episode that ran through several short-term versions before the LTS fix is the case study, documented in our local environment error guide. My rule is unoriginal and earned: LTS everywhere, and version-pin (portainer/portainer-ce:2.45.3 style) on machines where even scheduled surprises are unwelcome. Whatever you choose, the update commands don't change, only the tag in them does.

One tag warning from the field: mixing tracks by accident. On CE, :latest and :lts currently point at the same 2.45 build, so that pair is safe today; on Business Edition, :sts now means 3.x, so don't mix BE tags. Portainer's database migrates forward like most apps, so downgrades range from unsupported to broken. Check what you're running (bottom-left corner of the UI shows the version) before pulling a different tag than you installed with.

Back up the data volume before updating

Portainer updates have been drama-free for me across years of them, and the insurance costs so little I take it anyway: a copy of the data volume while the container is stopped.

docker run --rm -v portainer_data:/data -v $(pwd):/backup alpine \
  tar czf /backup/portainer-data-$(date +%F).tar.gz /data

Slot that between the stop and the rm, and the worst possible update outcome becomes a restore instead of a rebuild. The only line it printed on my server was tar: removing leading '/' from member names, which is normal.

Backup with the alpine image prints tar: removing leading '/' from member names, which is normal

The tar inside the alpine image prints one line about the leading slash; nothing else needs reading.

Settings also has a built-in backup. In CE it downloads Portainer's own configuration only (the panel says it "does not include containers") and the S3 upload on a schedule is a Business feature, so your containers and volumes still need a backup of their own.

CE backup panel: configuration only, no containers; Download backup file in CE, Store in S3 marked Business Feature

The backup panel in CE 2.45.3: a configuration download, with the scheduled S3 option marked as a Business feature.

Release notes are the other thirty seconds; Portainer's are short and flag breaking changes honestly, and skimming them beats discovering a changed default by surprise.

Your idea deserves better hosting

24/7 support 30-day money-back guaranteeRefund covers the VPS plan on your first order. Cancel anytime
مدة الإشتراك

VPS.S1

28.63 RON Save  17 %
23.85 RON شهري
  • 2 vCPU AMD EPYC
  • 2 GB RAMذاكرة
  • 30 GB NVMeتخزين
  • نطاق ترددي غير محدود
  • IPv4 & IPv6دعم IPv6 غير متاح حاليًا في فرنسا وفنلندا أو هولندا. مشمول

VPS.S3

71.64 RON Save  33 %
47.75 RON شهري
  • 4 vCPU AMD EPYC
  • 6 GB RAMذاكرة
  • 70 GB NVMeتخزين
  • نطاق ترددي غير محدود
  • IPv4 & IPv6دعم IPv6 غير متاح حاليًا في فرنسا وفنلندا أو هولندا. مشمول

VPS.S4

95.54 RON Save  20 %
76.42 RON شهري
  • 6 vCPU AMD EPYC
  • 8 GB RAMالذاكرة
  • 80 GB NVMeالتخزين
  • نطاق ترددي غير محدود
  • IPv4 & IPv6دعم IPv6 غير متاح حاليًا في فرنسا وفنلندا أو هولندا. مشمول

EPYC VPS.P1

42.97 RON Save  22 %
33.41 RON شهري
  • 2 vCPU AMD EPYC
  • 4 GB RAMذاكرة
  • 40 GB NVMeتخزين
  • نطاق ترددي غير محدود
  • IPv4 & IPv6دعم IPv6 غير متاح حاليًا في فرنسا وفنلندا أو هولندا. مشمول
  • نسخ احتياطي تلقائي مجانييشمل خانة نسخ احتياطي واحدة يمكنك ضبطها للتشغيل يوميًا أو أسبوعيًا أو شهريًا.

EPYC VPS.P2

81.20 RON Save  24 %
62.08 RON شهري
  • 2 vCPU AMD EPYC
  • 8 GB RAMذاكرة
  • 80 GB NVMeتخزين
  • نطاق ترددي غير محدود
  • IPv4 & IPv6دعم IPv6 غير متاح حاليًا في فرنسا وفنلندا أو هولندا. مشمول
  • نسخ احتياطي تلقائي مجانييشمل خانة نسخ احتياطي واحدة يمكنك ضبطها للتشغيل يوميًا أو أسبوعيًا أو شهريًا.

EPYC VPS.P4

143.33 RON Save  23 %
109.88 RON شهري
  • 4 vCPU AMD EPYC
  • 16 GB RAMذاكرة
  • 160 GB NVMeتخزين
  • نطاق ترددي غير محدود
  • IPv4 & IPv6دعم IPv6 غير متاح حاليًا في فرنسا وفنلندا أو هولندا. مشمول
  • نسخ احتياطي تلقائي مجانييشمل خانة نسخ احتياطي واحدة يمكنك ضبطها للتشغيل يوميًا أو أسبوعيًا أو شهريًا.

EPYC VPS.P5

191.13 RON Save  25 %
143.33 RON شهري
  • 8 vCPU AMD EPYC
  • 16 GB RAMذاكرة
  • 180 GB NVMeتخزين
  • نطاق ترددي غير محدود
  • IPv4 & IPv6دعم IPv6 غير متاح حاليًا في فرنسا وفنلندا أو هولندا. مشمول
  • نسخ احتياطي تلقائي مجانييشمل خانة نسخ احتياطي واحدة يمكنك ضبطها للتشغيل يوميًا أو أسبوعيًا أو شهريًا.

EPYC VPS.P6

286.71 RON Save  25 %
215.02 RON شهري
  • 8 vCPU AMD EPYC
  • 32 GB RAMذاكرة
  • 200 GB NVMeتخزين
  • نطاق ترددي غير محدود
  • IPv4 & IPv6دعم IPv6 غير متاح حاليًا في فرنسا وفنلندا أو هولندا. مشمول
  • نسخ احتياطي تلقائي مجانييشمل خانة نسخ احتياطي واحدة يمكنك ضبطها للتشغيل يوميًا أو أسبوعيًا أو شهريًا.

EPYC VPS.P7

334.50 RON Save  29 %
238.92 RON شهري
  • 16 vCPU AMD EPYC
  • 32 GB RAMذاكرة
  • 240 GB NVMeتخزين
  • نطاق ترددي غير محدود
  • IPv4 & IPv6دعم IPv6 غير متاح حاليًا في فرنسا وفنلندا أو هولندا. مشمول
  • نسخ احتياطي تلقائي مجانييشمل خانة نسخ احتياطي واحدة يمكنك ضبطها للتشغيل يوميًا أو أسبوعيًا أو شهريًا.

Genoa VPS.G2

119.44 RON Save  20 %
95.54 RON شهري
  • 2 vCPUمعالج AMD EPYC Genoa من الجيل الرابع 9xx4 بسرعة 3.25 GHz أو ما يماثله، على معمارية Zen 4. AMD EPYC G4
  • 4 GB DDR5ذاكرة
  • 50 GB NVMeتخزين
  • نطاق ترددي غير محدود
  • IPv4 & IPv6دعم IPv6 غير متاح حاليًا في فرنسا وفنلندا أو هولندا. مشمول
  • نسخ احتياطي تلقائي مجانييشمل خانة نسخ احتياطي واحدة يمكنك ضبطها للتشغيل يوميًا أو أسبوعيًا أو شهريًا.

Genoa VPS.G4

215.02 RON Save  22 %
167.23 RON شهري
  • 4 vCPUمعالج AMD EPYC مع أنوية vCPU مخصصة، على عتاد خوادم للمؤسسات. AMD EPYC G4
  • 8 GB DDR5ذاكرة
  • 100 GB NVMeتخزين
  • نطاق ترددي غير محدود
  • IPv4 & IPv6دعم IPv6 غير متاح حاليًا في فرنسا وفنلندا أو هولندا. مشمول
  • نسخ احتياطي تلقائي مجانييشمل خانة نسخ احتياطي واحدة يمكنك ضبطها للتشغيل يوميًا أو أسبوعيًا أو شهريًا.

Genoa VPS.G6

430.09 RON Save  22 %
334.51 RON شهري
  • 8 vCPUمعالج AMD EPYC مع أنوية vCPU مخصصة، على عتاد خوادم للمؤسسات. AMD EPYC G4
  • 16 GB DDR5ذاكرة
  • 200 GB NVMeتخزين
  • نطاق ترددي غير محدود
  • IPv4 & IPv6دعم IPv6 غير متاح حاليًا في فرنسا وفنلندا أو هولندا. مشمول
  • نسخ احتياطي تلقائي مجانييشمل خانة نسخ احتياطي واحدة يمكنك ضبطها للتشغيل يوميًا أو أسبوعيًا أو شهريًا.

Genoa VPS.G7

764.64 RON Save  22 %
597.37 RON شهري
  • 8 vCPUمعالج AMD EPYC مع أنوية vCPU مخصصة، على عتاد خوادم للمؤسسات. AMD EPYC G4
  • 32 GB DDR5ذاكرة
  • 250 GB NVMeتخزين
  • نطاق ترددي غير محدود
  • IPv4 & IPv6دعم IPv6 غير متاح حاليًا في فرنسا وفنلندا أو هولندا. مشمول
  • نسخ احتياطي تلقائي مجانييشمل خانة نسخ احتياطي واحدة يمكنك ضبطها للتشغيل يوميًا أو أسبوعيًا أو شهريًا.

AMD Ryzen VPS.R1

81.20 RON Save  18 %
66.86 RON شهري
  • 1 CPU مخصص معالج AMD Ryzen 9 7950X بسرعة 4.5 GHz أو ما يماثله، على معمارية Zen 4. vCPU
  • 4 GB DDR5ذاكرة
  • 50 GB NVMeتخزين
  • نطاق ترددي غير محدود
  • IPv4 & IPv6 مشمول دعم IPv6 غير متاح حاليًا في فرنسا وفنلندا أو هولندا.
  • نسخ احتياطي تلقائي مشمول

AMD Ryzen VPS.R2

143.33 RON Save  17 %
119.44 RON شهري
  • 2 CPU مخصصان معالج AMD Ryzen 9 7950X بسرعة 4.5 GHz أو ما يماثله، على معمارية Zen 4. vCPU
  • 8 GB DDR5ذاكرة
  • 100 GB NVMeتخزين
  • نطاق ترددي غير محدود
  • IPv4 & IPv6 مشمول دعم IPv6 غير متاح حاليًا في فرنسا وفنلندا أو هولندا.
  • نسخ احتياطي تلقائي مشمول

AMD Ryzen VPS.R4

525.68 RON Save  18 %
430.09 RON شهري
  • 8 CPU مخصصة معالج AMD Ryzen 9 7950X بسرعة 4.5 GHz أو ما يماثله، على معمارية Zen 4. vCPU
  • 32 GB DDR5ذاكرة
  • 400 GB NVMeتخزين
  • نطاق ترددي غير محدود
  • IPv4 & IPv6 مشمول دعم IPv6 غير متاح حاليًا في فرنسا وفنلندا أو هولندا.
  • نسخ احتياطي تلقائي مشمول

*VAT excluded.

INCLUDED WITH EVERY PLAN

✓ No setup fees ✓1 Gbps network
✓ Full root access on KVM ✓ Free server monitoring ✓ Firewall management ✓24/7 support

Updating containers through Portainer (the other meaning)

Half the people searching for portainer updates want the reverse: using Portainer to update the containers it manages. Two built-in routes cover it. For a single container, open it and hit Recreate with the "re-pull image" toggle on; Portainer pulls the newest image for that tag and rebuilds the container with identical settings. For stacks, the stack's editor has an Update the stack action with the same re-pull option, which is the proper route when the app came from a compose definition, as everything in our stacks guide does.

Portainer Recreate dialog with the Re-pull image toggle; the container webhook behind it is marked Business Feature

The Recreate dialog in CE 2.45.3 with its Re-pull image toggle; the container webhook behind it is a Business feature.

Two honest limits. Re-pulling a :latest-tagged image updates to whatever that tag means today, which is exactly as controlled as it sounds; apps you care about deserve version tags you bump deliberately. And Portainer won't schedule updates for you in CE; people wanting automatic container updates bolt on Watchtower, which works and also means machines updating themselves at 3 AM, a trade I decline for anything with a database. Do the immich-style apps on their own release-notes rhythm and let only the boring stateless stuff auto-update, if anything.

The one container Portainer shouldn't update

Itself. The UI will happily show a Recreate button on the portainer container, and pressing it mid-session is sawing the branch you sit on; sometimes it works, sometimes you get a half-recreated container and an SSH session anyway. Portainer gets updated from the terminal with the commands at the top, everything else gets updated through Portainer. That split is the entire maintenance model, and it's also why the install guide nags about keeping the standard container and volume names: every maintenance command on this page assumed them and worked unmodified.

Verify the update

Log back in at :9443 and read the version in the bottom-left corner; it should say the new number. Environments, stacks and users all present (they will be, the volume never moved). If the login page never comes back, docker logs portainer tells you why in the first screen, and the classic cause is a typo in the recreated run command rather than the update itself, which is one more quiet argument for the compose file that can't be mistyped twice.

Questions?

Can I skip several versions when updating?

Within 2.x, yes: Portainer's upgrade docs name no intermediate version, so the same commands take an older 2.x install straight to the current LTS. The one required stop is 2.0.0 for anyone still on 1.x, who "must first update to 2.0.0 before updating to the newest version or you will run into issues". Across a long gap, take the volume backup first and skim the release notes in between, since breaking changes pile up over many versions.

Deploy your next project in seconds

Bring your winning ideas online faster, with modern hardware and unmetered bandwidth. Join a European cloud trusted by thousands of developers and businesses worldwide.