Hi Daniel,
  Yes, we know. However, the current docker is not
suitable for advanced
 use or even for production. 
That's correct. The entrypoint did not even start. I needed to replace
it with
CMD /usr/local/sbin/knotd
The exposed ports had another syntax error, it should be
# Expose port
EXPOSE 53/UDP
EXPOSE 53/TCP
  I would like to move storage and configuration to an
external volume.
 And that's the question what the users would expect... 
I am using this docker-compose.yml for my setup as of I need to build
from the change Dockerfile:
version: '3'
services:
   knot:
     build:
       context: ./build
       dockerfile: ../Dockerfile
       args:
         buildno: 1
     restart: always
     ports:
       - "<ipv4>:53:53"
       - "<ipv4>:53:53/udp"
       - "<ipv6>:53:53"
       - "<ipv6>:53:53/udp"
     volumes:
       - /home/docker/asgard/knot/knot.conf:/usr/local/etc/knot/knot.conf
       - /home/docker/volumes/knot-zones:/var/lib/knot/zones
     container_name: knot
The /var/lib/knot/zones contains all zone files and the knot generated
folders journal, keys and timers.
This setup is working for me in production where the dockerized knot is
a hidden master.
Regards,
    Volker