|
nothing a light tap with a wrecking ball wouldn't fix
Signature ready for installation. Please Reboot now.
|
|
|
|
|
Are you using Docker or similar technologies today? What's been your experience like? What stack do you use it on? Thank you.
|
|
|
|
|
Drank like a fish and swore like a trooper
|
|
|
|
|
I'd be more impressed with drank like a trooper and swore like a fish.
This space for rent
|
|
|
|
|
PETA doesn't like sheep farmers to use a docker.
Signature ready for installation. Please Reboot now.
|
|
|
|
|
Just don't do what one of our vendors recently did: containerise an application that by definition had to run on a single server. Talk about "ooooh, shiny!". So now, that server runs one application plus docker to contain it. Same vendor must have a senior app architect addicted to coder newz. In the last two years what used to be a solid Windows server platform app built with C++ and .NET has added to their integrated app suite ... a module in Java that has to run on Windows, a module in Node.js that has to run on Ubuntu, two web apps and a module in a Docker container that is only supported on CentOS/RedHat. If only we could change vendors...
|
|
|
|
|
As Windows users developing mainly in Winforms we were disappointed, as Docker turns out to be a Linux thing.
We don't use it (yet)
|
|
|
|
|
There is a Windows version. I'm not saying it's great, but there is one.
This space for rent
|
|
|
|
|
Are you sure it's not based on a Linux virtual machine ?
|
|
|
|
|
Don't use the term "virtual machine" when close to Docker people, unless you are eager to listen to a 45 minute intense talk that Docker is NOT, I repeat: NOT virualization!
Virtualization is evil, Docker is good! And Docker isn't even "lightweight" virtualization. It is useless trying to discuss definitions of "virtualization" with Docker guys, or trying to compare the Docker way of providing isolation with a hypothetical minmal VM providing exactly those functions that your application needs while still being a VM (for the purpose of learning the details of what is so evil about virtualization). It is no use. The answer is given: VMs are evil, by definition.
On the more serious side:
Yes, the Docker demon is managed by a Linux kernel even in the Windows implemnentation.
This is not a Linux virtual machine. On Windows 10, the Docker demon runs inside a Hyper-V VM (so it requires a 64 bit CPU with Extended Page Tables. (On Server 2016 the implementation is somewhat different, and does not use Hyper-V.)
You can run Linux docker images in a Windows implementation; the Linux kernel functions are executed by the same kernel that runs the demon. You can obviously also run Windows docker images on Windows, but currently, the demon is in either Linux or Windows mode; it cannot run both flavors side by side. (I have seen rumours that this is being worked on, and will be possible in a future release.) The Linux implementation cannot run Windows images.
Docker is essentially suited for backend services: Until you start doing fancy tricks, a container's only interface to the world outside the Docker demon is one or more TCP ports, or for persistent data: Mapping (parts of) an external file system as a Docker volume.
There are two main alternatives for providing some sort of user interface: Either the container runs a web server, or you hook up a SSH console to it. In principle, I guess you could run e.g. an X.11 client in a Docker contiainer to give it a GUI interface; I doubt that anyone has seriously done anything like that.
I guess that Docker is as suitable for web servers running on a Windows host as for web servers running on a Linux host. But applications running a Windows GUI of any kind cannot be adapted to Docker. Nor can any application that requires user interaction for installation, installation must be pure command-line based, with all parameters supplied either on the call line or in a setup/ini-file.
When used for what it is good at, Docker is OK. Streching it to do "everything", being a complete replacement for traditional software design, installation and running, you should be prepared for some pains, in particular in environments where users prefer a highly functional GUI (like in high-quality native Windows applications).
|
|
|
|
|
Good info, thank you.
|
|
|
|
|
Thanks, that clears things up a lot.
I knew Docker is not a virtual machine, but did not know how to call it otherwise, maybe "containerization platform" would fit the bill ?
|
|
|
|
|
AFAIK, Docker for WindoZe is mostly meant for developing purposes and is not yet recommended for production(*) (at least last time I checked.)
(*) Just as much as WindoZe recommended for production isn't either ...
|
|
|
|
|
|
I like how docker is a 'demon' and not daemon
|
|
|
|
|
honest: that was a genuine typo, it was not intended
|
|
|
|
|
|
|
|
Don't they have Windows support now?
|
|
|
|
|
If anyone ever managed to run a Winforms application on Docker I would like to know !
|
|
|
|
|
If you by "Windows application" mean one with a native Windows GUI: No, that is not possible.
Windows applications without any GUI, communicating through either a web or SSH interface, is certainly possible - the kind of backend / web services.
The bottom layer of a Windows Docker image contains all that OS functionaliy that the upper layers have access to is a "Windows nanokernel" of, believe it or not, almost a gigabyte. (One might wonder what size a megakernel would be!) My guess is that those services offered by the nanokernel (which does not include any GUI functions!) really could be done in a fraction of the size, but the various modules are so deeply intertwingled that shaving off all that stuff that really does nothing for the API would require man-years of effort. Since this layer is shared between all running containers, and code that is never used is never paged in from disk, they probably figure "A GB of disk space is nothing, so shaving it further down isn't worth the cost". Sure, I am just guessing, but to me that looks like a reasonable explanation for that GB size bottom layer.
|
|
|
|
|
Why would you want to run a UI app in Docker?
|
|
|
|
|
Mainly for testing purposes so our tester has a ready to run Windows testing environment that can be produced by our Continuous Integration pipeline.
|
|
|
|
|