docker / kitematic

Visual Docker Container Management on Mac & Windows
https://kitematic.com
Apache License 2.0
12.25k stars 1.41k forks source link

User Experience - Switching Docker Server engines between Linux and Windows #3199

Open mit-jamie-clayton opened 6 years ago

mit-jamie-clayton commented 6 years ago

Expected behavior

Ability to download windows containers while Linux ones are running in the background. Ability to switch between linux and windows server containers with Kitematic able to open and function accordingly without stopping/starting running containers. Alternatively change the UX to restrict or warn users of the limitations of the software.

Actual behaviour

Unable to download Windows images/containers from Docker registry while linux containers are running. Unable to switch between linux/windows docker server architectures and have Kitematic open and function normally.

Information about the Issue

Window 10 1703 15063.674 Hyper v MobyLinuxVM Docker: Version 17.09.0-ce-win33 (13620) Stable Kitematic: v0.17.1

Steps to reproduce the behavior

  1. On Windows 10, Open docker, open your favourite CLI or Powershell.

  2. Confirm the docker version server architecture is linux/amd64 docker version

  3. Run normal Powershell (or other CLI) operations to start a docker image/container backed with Linux server. docker run -d --name jamie-ghost -p 80:2368 ghost

  4. Confirm the container is running via the CLI.
    docker ps

  5. Download and Open Kitematic.

  6. Confirm the matching docker container is running in the Kitematic UI.

  7. From Kitematic search for microsoft/nanoserver with IIS and download via the UI. kitematic nano with iis download

  8. Confirm the UI will not correctly download the image/container. kitematic download authentication error

  9. Close Kitematic and re-open shows the following message kitematic downloading error

  10. Switch back to the CLI

    & 'C:\Program Files\Docker\Docker\DockerCli.exe' -SwitchDaemon
    docker ps
  11. Confirm the docker version server architecture is windows/amd64

  12. Confirm the CLI will download the image/container microsoft/nanoserver from the CLI. docker pull microsoft/nanoserver

  13. Try and open Kitematic.

  14. Confirm the software fails to open with error messages connecting to docker.

  15. Close Kitematic

  16. From the CLI, confirm no containers are running and switch back to linux server

    docker ps
    & 'C:\Program Files\Docker\Docker\DockerCli.exe' -SwitchDaemon
    docker version
    docker ps
  17. Confirm the docker version server architecture is linux/amd64 and the ghost container is still running from step 3.

  18. Open Kitematic and confirm it gets a "Setup Configuration" error displayed. Note the incorrect assumption the the VM being used is virtual box rather than the windows 10 HyperV virtual machine.

kitematic - setupfailure

mit-jamie-clayton commented 6 years ago

Similar issues

2687 Windows vs Linux image/containers in Kitematic

2444 Pulling Linux containers with docker for windows

2045 Pulling images from Kitematic

1355 Docker daemon version used by Kitematic

FrenchBen commented 6 years ago

Kitematic isn't the limiting factor here - This is more of a lower-level tech. ATM Kitematic has been labelled as a legacy desktop application which will not see many upgrades moving forward. https://docs.docker.com/kitematic/ With that said, I'm happy to help if someone wants to build this.

TypedBit commented 6 years ago
  1. Open CLI
  2. Type docker --help
    • This may already take long. -- If you check docker icon you will see "Docker is switching" in case of long duration. -- After the switch is complete you will see the help in console.
  3. Type docker stop --help
    • This will definitely take long.
    • If you check docker icon you will see "Docker is switching"
    • Help will appear after switch is complete
  4. Now if you type docker --help again it will also definitely take long as docker will be switching again...
FrenchBen commented 6 years ago

@TypedBit this sounds like a docker/for-win issue, and should be opened there instead.