How does Docker work as far as being able to edit Apache config files and similar stuff?
Praticamente, porém, você gostaria que funcionasse. :)
If I understand correctly this is to allow outside folder/files of websites to exist on the server outside of the Docker image so that Docker is basically just to handle the actual server software?
Sim, está correto.
Would things like Apache Virtualhost records for adding domains exist inside the docker image or on the server outside of it and be editable?
Se você quiser / precisar que eles existam fora do contêiner, crie-os dessa maneira.
Como você sem dúvida notou, minhas respostas às suas perguntas foram bastante nebulosas. Há uma boa razão para isso. Só porque você está usando o docker não significa que haja uma única maneira de fazer as coisas. Seu caso de uso determinará em grande parte como você deseja usar o docker.
No meu ambiente, escolhemos armazenar toda a configuração e todo o estado do aplicativo fora do contêiner. Para configuração, isso significa que mantemos um diretório "etc" no host que contém toda a configuração para cada tipo de contêiner em execução nesse host. Da mesma forma, armazenamos o estado (arquivos de banco de dados, etc.) no sistema de arquivos do host, em vez de usar volumes de dados. Os diretórios de configuração e os locais de armazenamento de dados são montados em contêineres em execução usando o sinalizador -v
runtime. Essa arquitetura funcionou muito bem para nós, mas pode não ser o que sua organização precisa.
Há muitos casos de uso válidos para usar imagens docker completamente independentes que incluem configuração, junto com o uso de volumes de dados para o estado do aplicativo. Você só precisa enumerar seus requisitos e, em seguida, elaborar um design que atenda aos seus requisitos.
O Docker é uma ferramenta para você usar. Cabe ao usuário determinar como eles vão usá-lo.