Update problem with Docker

OK, so when recreating the container, it should look more like this, with the default variables removed, otherwise youare overriding any that may have changed in the image.

{
   "CapAdd" : [],
   "CapDrop" : [],
   "cmd" : "",
   "cpu_priority" : 50,
   "enable_publish_all_ports" : false,
   "enable_restart_policy" : true,
   "enable_service_portal" : null,
   "enabled" : true,
   "entrypoint_default" : "/s6-init",
   "env_variables" : [      
      {
         "key" : "FTLCONF_REPLY_ADDR4",
         "value" : "XXX"
      },
      {
         "key" : "DNSMASQ_LISTENING",
         "value" : "local"
      },
      {
         "key" : "WEB_PORT",
         "value" : "XXX"
      },
      {
         "key" : "WEBPASSWORD",
         "value" : "XXX"
      }
   ],
   "exporting" : false,
   "id" : "XXX",
   "image" : "pihole/pihole:latest",
   "is_ddsm" : false,
   "is_package" : false,
   "links" : [],
   "memory_limit" : 0,
   "name" : "Pi-Hole",
   "network" : [
      {
         "driver" : "host",
         "name" : "host"
      }
   ],
   "network_mode" : "host",
   "port_bindings" : [],
   "privileged" : false,
   "shortcut" : {
      "enable_shortcut" : false,
      "enable_status_page" : false,
      "enable_web_page" : false,
      "web_page_url" : ""
   },
   "use_host_network" : true,
   "volume_bindings" : [
      {
         "host_volume_file" : "/docker/pihole/pihole",
         "mount_point" : "/etc/pihole",
         "type" : "rw"
      },
      {
         "host_volume_file" : "/docker/pihole/dnsmasq.d",
         "mount_point" : "/etc/dnsmasq.d/",
         "type" : "rw"
      }
   ]
}

You should also replace the ServerIP variable with FTLCONF_REPLY_ADDR4 (I have done this above) as it is now deprecated: GitHub - pi-hole/docker-pi-hole: Pi-hole in a docker container

Okay, that seems to have worked now. I will keep an eye on it.
What do I do in the future when an update is available?
Will it work again when I export and import my settings?

Why are you exporting and importing settings?

If you use a compose file to start the container, the new container will use always the same settings.
If you set volumes to store your data, then your data is already safe.

In a tutorial, the procedure was explained in this way.
In order to create a container in Docker, some settings are required that do not have to be set in this way.

As far as I can tell, you're using volume mounts - so most settings will be persisted in that, If you really want to import again - use that same file that I edited above, rather than exporting and importing each time.

Better still, look into installing portainer on your synology it's a much nicer GUI experience than the default Syno one, in my opinon

OK, I will now always use the same file.
I'm glad I got Pi-Hole up and running.
I don't know anything about Portainer.