Well... That is not very user friendly. I'll probably stick with RPi and SSH.
I think the point is generally with containers if you ever need to use SSH to change them, you may be doing something wrong. *unless your trying to develop/test a new Dockerfile or modify something that is a "mounted"... The key thing to understand is data/config and code are designed to be seperate, so it should be completely safe to just the replace the code part, while leaving the data/config part stays same.
在你的情况下,您应该能够删除existing container in /container, then just add another, picking the new PiHole image, use same envlist , same mounts, - it will pull a new one and use your same setting as before – since there stored separately e.g. mount and environment tabs. Mikrotik docs direct folk to setup PiHole up this way already with the config/data being seperate from image, so you should be set there. So it's really just "delete the container to upgrade" that needs to be added, then follow the same step for just creating the container you used originally (since you'd already created the envlist and mount the first time).
# find your pihole container's ID (generally 0) that you want to upgrade /container/print # remove container /container/remove 0 # re-add same container /container/add file=pihole.tar interface=veth1 envlist=pihole_envs mounts=dnsmasq_pihole,etc_pihole hostname=PiHole
But there isn't a "one button" (or command) way to pull a new image AFAIK. And if you did SSH into the box, and changed stuff outside the configured mounts, then YES those changes be lost. If you used mount and/or envlist, those are preserved even if the container gets delete. Thus the advice to always use environment variables to configure containers (or build your image on a PC using a customized Dockerfile as works). To @tagent's point, Mikrotiks are generally "pets" while containers should be the "cows".
If you like running PiHole on a seperate box, I can't argue that may be simplier. But the docker model may be worth thinking about, even how to upgrade isn't obvious at first.