Torizoncore-builder "deploy" is not overwriting my settings or docker images

After deploying a newly build OS image using “torizoncore-builder build” and then “torizoncore-builder deploy” I see that all my Ivy board’s docker images are still there. I expected them to be replaced by the images that were bundled in my OS build. I also see my custom network settings in /etc/NetworkManager are still there. I expected them to be wiped out. Even when unpacking and deploying an unmodified OS image downloaded directly from Torizon’s website, I still see my own docker images and network settings present on my board!

Does “deploy” not do what I think it does? I know I am running a new OS now because I can print the “uname -a” and see that the OS version has changed. But my docker images and /etc/NetworkManager settings are still there. I was hoping to be able to overwrite these things with the new OS, and have nothing left over of the old OS, which is why I am building a new OS in the first place.

Hi, I’m the Toradex AI Assistant.

I might make mistakes. Our support team will step in if needed. If I answered your question, please tick the “Solution” checkbox. For follow-up questions to me, please use @ToradexAI in your post.

Did you like my answer? :+1: :-1:


Hello! Thank you for your detailed question.

What you’re experiencing is the expected behavior due to how the OS deployment process with TorizonCore works. Here’s a summary of what happens and why:

Why are my Docker images and custom /etc configs still present?

  • When using torizoncore-builder deploy, only the OSTree-managed portions of the filesystem are updated. This generally means the root OS image and its core files.
  • Directories like /etc (where your network settings are stored) and Docker managed data are not under OSTree control, so they are preserved during deploy operations (details).
  • As a result, your pre-existing Docker images and custom network configurations remain after a deploy—even if you have built a new OS image.

How can I get a “factory fresh” system?

If you want to completely overwrite the device—removing all old Docker images, custom network settings, and providing a true “reset”—you should use the Toradex Easy Installer to flash your new image instead of just deploying over SSH. This will:

  • Erase user data, including existing Docker content and /etc changes.
  • Install the OS and any pre-bundled Docker containers or configurations as you intended (instructions).

Summary of Recommendations

  • For a clean, complete overwrite: Use the Toradex Easy Installer to flash your image (easy installer usage).
  • Deploy via SSH (deploy command): Only updates the system components managed by OSTree; Docker/system configs in /etc are preserved by design (background).
  • Customizing /etc or containers: If you want customizations to be present after a fresh install, incorporate them into your TorizonCore image and then deploy with the Easy Installer.

If you need to include specific network settings or Docker containers in your image for fresh flashes, use tools such as the isolate command for configs and bundle/combine for containers (configuration capture).

Bottom line:
To truly wipe and re-provision everything on your board, including containers and /etc changes, flash your image with the Toradex Easy Installer.

Best regards,
Toradex AI Assistant.

Thank you. Just to confirm: Any changes that I pull in using “isolate” or “bundle” will NOT show up after “deploy”?

Thank you for your help. I just installed a stock copy of Torizon OS 7.3.0, then I built my own OS and did a “deploy”. I found that this time the “deploy” step really did change the contents of the /etc/ directory. I do not understand why /etc/ is affected in the case of going from Torizon OS 7.3.0 to a custom OS, but not when going from a custom OS to a different custom OS, or when going from a custom OS to Torizon OS 7.3.0. I’m having trouble predicting what deploy will copy – for example, as before, none of the docker containers from my “bundle” step were copied over. Maybe it depends on whether there are “isolated changes” included with the OS or not?

Next I will copy all changes onto a USB drive and try to install using Easy Installer as you suggested instead of using the “deploy” feature.

Hey @jzylkin2,

The underlying technology that allows the OS to be updated that allows some aspects of persistence is OSTree. You can read more about it here. Specifically directories /etc/ and /var/ are treated as ‘special files’ and will not be ‘wiped.’ When you are using “deploy” with torizoncore builder, you are utilizing OSTree to preform the update. If you want to flash a new clean image, you can load Toradex Easy Installer into RAM and flash a new image from the feeds.

-Eric