@Override
 public void copyTo(TemplateOptions to) {
   super.copyTo(to);
   if (to instanceof DockerTemplateOptions) {
     DockerTemplateOptions eTo = DockerTemplateOptions.class.cast(to);
     if (!volumes.isEmpty()) {
       eTo.volumes(volumes);
     }
     eTo.hostname(hostname);
     if (!dns.isEmpty()) {
       eTo.dns(dns);
     }
     eTo.memory(memory);
     eTo.cpuShares(cpuShares);
     if (!commands.isEmpty()) {
       eTo.commands(commands);
     }
     if (!env.isEmpty()) {
       eTo.env(env);
     }
     if (!portBindings.isEmpty()) {
       eTo.portBindings(portBindings);
     }
     eTo.networkMode(networkMode);
     if (!extraHosts.isEmpty()) {
       eTo.extraHosts(extraHosts);
     }
   }
 }
 /** @see DockerTemplateOptions#dns(Iterable) */
 public static DockerTemplateOptions dns(Iterable<String> dns) {
   DockerTemplateOptions options = new DockerTemplateOptions();
   return options.dns(dns);
 }
 /** @see DockerTemplateOptions#dns(String...) */
 public static DockerTemplateOptions dns(String... dns) {
   DockerTemplateOptions options = new DockerTemplateOptions();
   return options.dns(dns);
 }