docker / roadmap

Welcome to the Public Roadmap for All Things Docker! We welcome your ideas.
https://github.com/docker/roadmap/projects/1
Creative Commons Zero v1.0 Universal
1.46k stars 246 forks source link

Docker Desktop UI: Mount volumes, add/edit environment vars, add/edit ports. #75

Open commanderfun opened 4 years ago

commanderfun commented 4 years ago

Tell us about your request I would love additional feature parity with Kitematic. It would be great if Docker Desktop's UI could mount volumes, add/edit environment variables, add/edit exposed ports.

Which service(s) is this request for? Docker Desktop for Mac

Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard? I can't stop using Kitematic until Docker Desktop reaches feature parity.

Are you currently working around the issue? Yes, by using Kitematic.

nebuk89 commented 4 years ago

@commanderfun thank you for this really well written request!

Great feedback - is there any other key feature of Kitematic you would like us to bring into the new UI? Feature parity would be great but knowing a top N list means we can attack this in a logical order :)

commanderfun commented 4 years ago

Thanks @nebuk89

Here's a list of Kitematic features that I would like to see added to Docker Desktop in order of priority.

  1. Ability to mount/map volumes from a local folder into the container's docker folder. i.e. Mount the volumes that were already defined in the Dockerfile used to build the image.

  2. Ability to rename a running container. Like you can on Kitematic's General > Container Info > Name field.

  3. Ability to set/edit/remove environment variables in a running container.

  4. Ability to add/edit ports. The Internal to external port mappings.

The rest of Kitematic's features seem less important to me but I can see how some users might like to see the ability to configure links between containers via the Docker Desktop UI.

Thanks!

docker-feature-01 docker-feature-02 docker-feature-03

ecbrodie commented 4 years ago

Hello. I was linked to here from https://github.com/docker/toolbox/issues/891.

I would like to request that you support GUI-based modification of container restart policies, especially for Docker-Compose containers. This was a feature that I used quite a bit in Kitematic, but was unfortunately not available in Toolbox. Without Kitematic, the only way for me to modify the restart policies on my live containers are to destroy them and then recreate them with the restart policy docker-compose.yml modified. Maybe there is a pure CLI way to modify the restart policies on the live containers, but I have not come across it in the documentation.

Here's a picture of the Kitematic functionality that I'm referring to: kitematic_restart_policy

ecbrodie commented 4 years ago

@commanderfun @nebuk89 any thoughts on my suggestion?

commanderfun commented 4 years ago

@ecbrodie In my opinion it would be a good idea to incorporate ALL of Kitematic's features into Docker Desktop. I hope this is what they decide to do.

nebuk89 commented 3 years ago

Eep sorry for my slow response!

@ecbrodie restart policies are a good idea! and @commanderfun thank you for the detailed overview!

We are working on adding some of these features in currently to desktop with more on the way. Right now we are doing a main images UI and will be reviewing going into our Q3 (~Aug) what bits we do next :) your contributions here help us work that out!

We are pretty much done with design for the local images part of the new UI at the moment but any last minute thoughts would be appreciated! (this is JUST a design, implementation may vary 😄 ) image

ecbrodie commented 3 years ago

@nebuk89 looks alright to me.

It's hard to discern from this screenshot how the restart policy on the container would be configured. Perhaps through the hamburger menu beside where the mouse is hovering over? Anyway, I appreciate that my feedback is being accepted here.

gcphost commented 2 years ago

Bump. Kitematic was way better, will need to dig out my old laptop to copy it over and see how it fairs on an M1 chip. Kitematic actually lets you manage your containers. Docker Desktop doesnt seem to offer much.

david-ns commented 2 years ago

@nebuk89, any update regarding this issue, since Kitematic has been already deprecated? Changing volumes, ports, environment variables and the restart policy using the ui was really handy.

mathias22osterhagen22 commented 2 years ago

@nebuk89 hello, happy new year :), I'm thinking that it would be really great to add an "Environments variables" section at least in the "Run" Window.

image

I'm using the "desktop" version to easily guide "not IT" people to run programs or tools. If they could fill the Environments variables through a form better than by a CLI this would be so much easier and user-friendly for them!

nebuk89 commented 2 years ago

CC @stephanierifai

stephanierifai commented 2 years ago

Awesome, great feedback @mathias22osterhagen22! We're working on some stuff related to this currently and I'd love to chat more, if you want to drop me an email at steph.rifai@docker.com we can find a time :)

WGcode400 commented 2 years ago

@nebuk89 hello, happy new year :), I'm thinking that it would be really great to add an "Environments variables" section at least in the "Run" Window.

image

I'm using the "desktop" version to easily guide "not IT" people to run programs or tools. If they could fill the Environments variables through a form better than by a CLI this would be so much easier and user-friendly for them!

Im in need of this feature as well

stephanierifai commented 2 years ago

Awesome, we're looking into adding environment variables!

bieblebrox commented 2 years ago

Following this. Also still regularly falling back to kitematic to set environment variables / volumes & port management. Would be great if this can be added to docker desktop.

MysteryMS commented 2 years ago

Looking forward on this

thaJeztah commented 2 years ago

One thing that may have to be looked into is if the dashboard should also provide the option to take environment variable values from the host's environment.

The docker CLI allows -e / --env to only specify the name of the environment variable; when omitting the value (and no =), it looks up the value of the given environment variable in the current environment. This can be useful in situations where you have certain environment variables defined in your .profile (which could be, for example, a token).

For example;

$ export SOME_ENV_VAR_IN_MY_ENVIRONMENT="hello env var"
$ docker run --rm -e SOME_ENV_VAR_IN_MY_ENVIRONMENT busybox sh -c 'echo $SOME_ENV_VAR_IN_MY_ENVIRONMENT'
hello env var

Note that omitting the = here is important, because adding = means "set the value to an empty string"; subtle difference, but sometimes important;

$ docker run --rm -e SOME_ENV_VAR_IN_MY_ENVIRONMENT= busybox sh -c 'echo $SOME_ENV_VAR_IN_MY_ENVIRONMENT'

So if that should be supported, the dashboard should provide;

stephanierifai commented 2 years ago

Hi Folks! Would love to get some feedback on the designs for this.

If anyone is open to setting up some time to chat more about that would be awesome! You can reach out to me at steph.rifai@docker.com

Screen Shot 2022-06-03 at 9 16 56 AM
MysteryMS commented 2 years ago

The overall design looks simply fine. I wonder if you'll be able to edit these settings after creating the container.

david-ns commented 2 years ago

The design looks great, but as @MysteryMS I wonder if that options will be available after the container creation, like on kitematic. Also, the ports section seems pretty... rigid? Not as configurable as the Env vars one, for example (multi-entry support).

SergioSuarezDev commented 2 years ago

i'm still using kitematic or the portainer plugin in MacOS with MacBook m1... docker desktop is still very simple for me

It would be nice if, since kitematic has at least been deprecated, all the functionalities of adding folders, ports, variables, and all those incredible functionalities that it offered are included in docker desktop

wotupfoo commented 2 years ago

My frame of reference is the Synology NAS Disk Station Docker Native App where I can set the CPU priority, maximum container size (eg 4GB), Environment variables, ports, volumes

Here is the Environment Tab image

Here is the General Tab with the CPU and Memory settings as well as Access Control... image

stephanierifai commented 2 years ago

Awesome everyone, thanks for this feedback. We'll take a look into it and see what we can prioritize next!

mgara commented 1 year ago

Ladies, Gents, Any news on this feature ?

SergioSuarezDev commented 1 year ago

I continue using kitematic 😆

MysteryMS commented 1 year ago

Two years and still nothing?

mgara commented 1 year ago

Two years and still nothing?

Im using Kitematic ...

soccerboys2008 commented 1 year ago

i found a way to do it manually but it's a bit of a process (this is for linux)

  1. quit and exit docker desktop

  2. locate where the vm disk is stored

to do this i ran this command: docker context ls which returned this:

NAME                TYPE                DESCRIPTION                               DOCKER ENDPOINT                                   KUBERNETES ENDPOINT   ORCHESTRATOR
default             moby                Current DOCKER_HOST based configuration   unix:///var/run/docker.sock                                             swarm
desktop-linux *     moby                                                          unix:///home/andrew/.docker/desktop/docker.sock

i looked into some of the paths listed under 'DOCKER ENDPOINT' and ended up finding it here: /home/andrew/.docker/desktop/vms/0/data

  1. mount the disk (double check to make sure docker isn't running)

first i ran fdisk -l ./Docker.raw which returned:

Disk ./Docker.raw: 64 GiB, 68719476736 bytes, 134217728 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x29e4f175

Device        Boot Start       End   Sectors Size Id Type
./Docker.raw1       2048 134217727 134215680  64G 83 Linux

now get the offset value: Sector size * Start = Offset in my case it's: 512 * 2048 = 1048576

now make a directory to mount to: sudo mkdir /media/Docker

and mount the image: sudo mount -o offset=1048576,rw ./Docker.raw /media/Docker

  1. to browse some of the directories you'll need root permission (i ran sudo nautilus)

  2. in my case after mounted i found hostconfig.json and config.v2.json under /media/Docker/docker/containers/<your container hash>

  3. edit those files (or whatever else you need to) to change the environment variables / port (you'll need root permission to edit)

  4. when done unmount the image with: sudo umount /media/Docker

Congrats you've now changed what you needed

P.S. tried installing kitematic and was met with this:

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Note, selecting 'kitematic' instead of './Kitematic-0.17.13_amd64.deb'
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 kitematic : Depends: gvfs-bin but it is not installable
             Depends: python but it is not installable
E: Unable to correct problems, you have held broken packages.

after seeing this i didn't feel like trying to force it to work, and opted to find another way without installing more stuff

eric-creekside commented 1 year ago

Hi Folks! Would love to get some feedback on the designs for this.

  • What's useful?
  • What's missing?
  • Anything confusing?
  • Anything on the designs that are just "nice to have"?

It's been almost a year, was this idea and design never taken any further?

theoroborus commented 11 months ago

i'm still using kitematic or the portainer plugin in MacOS with MacBook m1... docker desktop is still very simple for me

It would be nice if, since kitematic has at least been deprecated, all the functionalities of adding folders, ports, variables, and all those incredible functionalities that it offered are included in docker desktop

I can't agree more. I come from Unraid, and when I used docker desktop for the first time, I realized the gap there was in terms of UI functionalities. It's looking good. That's it. I want to be able to edit variables, docker names, etc. I have still no idea if it's possible, I'm tired of searching how-to. I know what I want to do and I'm limited. Reading this topic confirms what I slowly realized.

Edit : after testing kitematic for 30secs : yep, better, easier, stronger, technologic. Should not have been discontinued. Edit 2 : depending on what you need to do, I would recommend using both, hilarous.

SvenBudak commented 10 months ago

Sorry if my comment isnt helpfull to anyone but... i try to find sience hours a way to edit or add after creating a container the enviroment variables... it seems on youtube is not one single tutorial available for the Desktop Version of Docker. Everyone show how it works in Terminal, but thats not helpfull for people like me, they have no base knowledge about docker and linux...

soccerboys2008 commented 10 months ago

Sorry if my comment isnt helpfull to anyone but... i try to find sience hours a way to edit or add after creating a container the enviroment variables... it seems on youtube is not one single tutorial available for the Desktop Version of Docker. Everyone show how it works in Terminal, but thats not helpfull for people like me, they have no base knowledge about docker and linux...

Um: https://github.com/docker/roadmap/issues/75#issuecomment-1399786644

I posted instructions in an earlier comment

jo-chemla commented 10 months ago

Would be so much easier to do it directly within docker-desktop via a container settings page. On my end, I'm resorting to using portainer to manage my containers rather than using docker-desktop - at least while it is not possible to edit container' environment variables, volumes, port mapping etc after initial creation.

SvenBudak commented 10 months ago

Would be so much easier to do it directly within docker-desktop via a container settings page. On my end, I'm resorting to using portainer to manage my containers rather than using docker-desktop - at least while it is not possible to edit container' environment variables, volumes, port mapping etc after initial creation.

exactly. people like me have no idea how to use the terminal... i jusdt want to run quick and easy my backends...

jo-chemla commented 10 months ago

Note: docker-desktop does have extensions, one of which is indeed portainer, with an easy setup, so can be useful to edit container parameters after creation more easily than via docker-desktop itself.

Not sure though how to map volumes on the host to the docker-desktop extension container.

Otherwise, portainer can be easily run via docker through:

docker run -d -p 9000:9000 -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data -v /host-volume/:/container-volume/ portainer/portainer-ce:latest
evansharp commented 8 months ago

Bump. Still looking for:

Essentially make the UI as useful as CLI at all...

MysteryMS commented 8 months ago

it's most likely it's not gonna happen. not too soon. three years waiting for it. they even rolled the progress back. no hope at all anymore.

SergioSuarezDev commented 8 months ago

And Kitematic not work in Macs with M2 chip :(

mosiobahmani commented 8 months ago

it seems it's a handy feature, everyone feels this requirement, but after 3 years they don't do anything... great

SergioSuarezDev commented 8 months ago

And Kitematic not work in Macs with M2 chip :(

I take it back, yes it works :) I return to Kitematic