Acho que entendo o que você está tentando realizar. Seu Virtualbox Ubuntu é o servidor principal, onde você deve ter:
- Docker
- git e todos os utilitários
- seu conteúdo (html, php, css, js, etc.)
O Docker permite que você instale aplicativos em contêiner, por exemplo:
- Nginx e php-pfm
- MySQL
- NodeJS
Você deve vê-los como aplicativos, nada mais que isso. Você deve ter um contêiner por aplicativo, portanto, quando quiser usar uma versão diferente, digamos, do MySQL, você deverá destruir o contêiner e criar um novo. Cada contêiner deve expor a porta da qual precisa ser acessada (por exemplo, porta 80 ou 443 para nginx). Além disso, o contêiner deve receber acesso a pastas no servidor principal onde os arquivos de origem residem (e são controlados por versão com git). Dessa forma, destruir um contêiner deve ser o mesmo que desinstalar um programa.