We need to use Docker for Windows in our build system. When setting up the machines, we are faced with several limitations – for instance, trying to deploy several machines is not “automatable”, because there’s an extensive need to configure things through the UI.
Two examples:
-Sharing drives cannot be done any other way than via the UI
-A Docker pop up will show at start up and request user feedback, and while that happens, service does not start
These are just two examples showing that Docker for Windows is not compatible with unattended/automated usage.
Are there plans to change this?
Making sure that any feature can be controlled via the UI AND via command line would really help!
This is not limited to build system usage; when setting up a tool for developers, we have also encountered similar limitations.
This lack of automation made us choose to work with docker toolbox and virtualbox instead of docker for windows. I know you guys advertise it as being super easy to use but for me it proved not to be and apparently I’m not the only one. It would be really helpful if you could do something about it.
It sounds like you are using the wrong product for what you want to accomplish. Are you trying to run Linux or Windows containers on these Windows boxes?
If you are looking to run Windows containers then installing Docker on Windows Server 2016 is absolutely scriptable. In fact the Windows server that I run in my docker swarm are all Server 2016 Core, which does not really have a standard UI experience, everything is done via powershell.
With Docker on Server 2016, there is no need to “share drives” as the docker daemon runs natively on the server.
Indeed. But even if it worked, if it’s not officially supported, there’s a big risk in going that way. You may end up one morning with an update that breaks your whole build pipeline. But thanks for suggesting.
I’d like to add we’re also in the same situation.
We’re all using Win10 and Visual Studio 2017 + .Net Core 2.0, targeting Linux containers.
Having that popup after a reboot to blocks the startup of docker is a real pain on the build machines, as is the lack of easy automation for the shared drives.
And with passwords changing every few months, those shared drives can become invalid quite often.
@papazark, is having a windows 10 build machine a dependency of yours like it is for @gdouaire?
We are building .Net Core 2.0 and Framework 4.5.2 with a mix of Windows and Linux containers, our automated linux builds are being done on Ubuntu 16.04 virtual servers using, I just created a bash script that calls docker-compose build and docker push for out linux servers to make our linux containers.
Yes, having windows 10 is a strong dependency for us, since we also run tools (code generators) during the build process that involves the client part.
Hopefully, someone from Docker will read this. This post is about feature requests, obviously several people are in this use case – needing an automatable Docker for Windows that can be run unattended for pipelines and tool chain.
It’s almost feasible, almost there, short of a couple of major flaws.
Adding an unattended & automatable & scriptable mode would not remove anything from the ordinary UI-slash-clickfest experience. if that’s what’s the average user wants. But it would be worth a lot for lot of other people.
Docker for Windows 10 is not supported for Production use, only Docker for Windows 2016, as mentioned above by @cmyerswerktek
Docker on Windows 2016 is a whole new experience and much more suitable for automated scenarios like CI agents.
We have quite a lot of Windows 2016 Docker hosts running build containers with VS Build Tools, SDKs, .NET Frameworks etc inside. microsoft\windowsservercore is in fact a strip-down version of Windows 10, so you can have all your dependencies there - inside a container.
That’s how we do it and it works great for us.