Replies: 6 comments 15 replies
-
|
This feature is useful in WSL (distro integration, port forwarding, filesystem sharing), and something also Lima does. In fact you can run Lima with the WSL2 driver, and it will do the user creation and those other missing pieces for you... Nowadays WSL even does GUI (with WSLg), and that would be the real killer feature for this "distro" integration as well? Meanwhile we have an experimental AC/DC driver so that you can use Lima to customize your "container" (Apple or Kata) |
Beta Was this translation helpful? Give feedback.
-
|
If
But what about |
Beta Was this translation helpful? Give feedback.
-
|
I don't see why you need to use new commands, for these "distro" containers?
Shouldn't these just use "stop" and "rm" commands, like with any other container. Commands such as "list" and "create" are still convenient wrappers, to the usual. |
Beta Was this translation helpful? Give feedback.
-
A simple approach to get started with the idea, would be to prompt the user (after starting the container): But a typical container would have a custom image for the user, with the account and the home mountpoint dir: RUN groupadd -g $gid $group && useradd -u $uid -g $gid -d $home -s $shell -m -N $user \
&& rm -f /etc/.pwd.lock
VOLUME $home
WORKDIR $home
USER $user
CMD ["$shell"]To not have to do it later at runtime, similar to how packages are installed in the image and not in the container? Lima uses |
Beta Was this translation helpful? Give feedback.
-
|
"Is this something you'd use? Would this be valuable to your workflow?" Yes! "What features are must-haves?"
"How would you use this differently from containers? What use cases would this unlock for you?" Some examples:
|
Beta Was this translation helpful? Give feedback.
-
|
I independently started experimenting with this very idea, building on top of I continued my experimentation anyway to see what I could come up with. My goal was to be 100% compatible with the existing toolbox out-of-the-box. This felt like an important feature to me, so that existing efforts from other communities can overlap with this one. I found that most of the customization happens during the container creation, and passing in some values from the host at "enter" was important as well (specifically the shell, as many Linux distributions don't ship zsh). Toolbox also does a lot of bind mounting of host devices like the D-Bus socket and the SSH agent socket that is a lot more difficult to achieve in this case because we're actually crossing two boundaries (macOS -> guest virtual machine -> container). I ended up not setting the user's host home directory to the container's home directory, but I still mounted it into the container. I found that I had some macOS binaries that execute when shell logs in that don't work in a Linux container (obviously!). This was a really fun experiment though. I hope this feature gains some traction! |
Beta Was this translation helpful? Give feedback.

Uh oh!
There was an error while loading. Please reload this page.
-
Background
Due to the popularity of projects like WSL, Lima and many others in this realm, it's clear that there's appetite for a container/VM hybrid solution that plops you in a Linux environment as fast as possible, while being effortless to get started, highly customizable, and integrated with your host system in clever ways.
While our project is currently tailored around running single containers, and that will continue to be the main focus, we've been mulling over a new experimental surface that would complement this functionality and that we already have most of the building blocks for from the rest of the project. We've been thinking of naming this new feature
distro.What is
distro?The
distrofeature would provide a more full featured VM-like experience, giving you (subject to change, but our current thoughts):Instant Linux environments: Boot into Ubuntu, Debian, Alpine, or any other distribution in seconds. The distributions would just be container images like we're all used to, but the main difference being the set to choose from would be more full featured images with non-stripped down userlands, and we'd by default try and run any init system in the image (/sbin/init).
Persistent workspaces: Unlike ephemeral containers, distros maintain state between sessions. Writes are persistent in other words.
Seamless integration:
Simple management: Straightforward commands to manage your Linux environments.
Interface brainstorm
We're envisioning commands like the following:
Questions for the Community
We'd love your feedback:
Please share your thoughts! Whether you'd be an eager early adopter, or you think this doesn't fit the project's direction 😄, we want to hear from you.
Beta Was this translation helpful? Give feedback.
All reactions