Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Remote - Containers] Be more restrictive when installing Docker Desktop on MacOS to set up a container #5538

Open
voxpelli opened this issue Sep 1, 2021 · 10 comments
Labels
containers Issue in vscode-remote containers feature-request Request for new features or functionality
Milestone

Comments

@voxpelli
Copy link

voxpelli commented Sep 1, 2021

Considering the news that Docker Desktop will require a subscription for anyone working at a large company, it's a bit problematic that this extension tries to help install it when one tries to run a dev container locally.

I would suggest you clearly explain the subscription requirement before offering to install Docker Desktop and/or switch to an alternative implementation, like:

@voxpelli voxpelli changed the title Be more restrictive when installing Docker Desktop on MacOS to set up a dev container [Remote - Containers] Be more restrictive when installing Docker Desktop on MacOS to set up a container Sep 1, 2021
@github-actions github-actions bot added the containers Issue in vscode-remote containers label Sep 1, 2021
@Chuxel
Copy link
Member

Chuxel commented Sep 1, 2021

The challenge here is that there are not perfect alternatives for the average user today in the container ecosystem.

For windows you can already use docker directly installed in WSL when using the Remote - WSL extension. macOS is a bit tougher since all of these solutions involve more complex setup for the user as there has to be a VM.

For macOS, we may enable Remote - SSH to work with Remote - Containers (like Remote - WSL does now) so you don't need to have docker installed locally. This has been a popular request both before and after this announcement. You could use a local or remote VM in that case (depending on your licensing agreements with Docker).

To be clear, Docker's announcement affects Docker Desktop, not the Linux engine/cli (e.g. as mentioned here) - so transitioning to something like Podman alone does not address core gaps. Docker Desktop primarily brings this to non-Linux platforms in a well integrated way.

lima is close - there's certain things that are still rough spots for the average person that uses Docker and expects things to "just work". Using brew install lima didn't "just work" for me. We've seen similar issues with Podman.

We'll watch customer feedback here since our alternative realistically right now is to not offer to install anything instead. That said, nothing is as "drop in" as Docker Desktop currently and it does provide quite a bit of value and at this point there is not a viable alternative.

//cc: @bamurtaugh @chrmarti

@Chuxel Chuxel added the feature-request Request for new features or functionality label Sep 1, 2021
@mgudmund
Copy link

mgudmund commented Sep 1, 2021

+1

@kebyn
Copy link

kebyn commented Sep 3, 2021

It is recommended to add nerdctl (Docker-compatible CLI for containerd, with support for Compose) support, or provide CRI (Container Runtime Interface) interface support like Kubernetes CRI

@Chuxel
Copy link
Member

Chuxel commented Sep 7, 2021

It is recommended to add nerdctl (Docker-compatible CLI for containerd, with support for Compose) support, or provide CRI (Container Runtime Interface) interface support like Kubernetes CRI

@kebyn Thanks for the input! Please log a separate feature request to support nerdctl+containerd. It is unfortunately currently missing key things like --mount but I'm sure this will change in time. Like Podman, it is also is not a replacement for Docker Desktop on its own, so it's not something we would suggest the average user install at this point - that is what the notice that currently exists is intended to handle (a "double click-on-installer-and-you-are-done" experience for macOS and Windows in particular). This issue is not about supporting alternate solutions since each will have their own work to be as drop-in.

@voxpelli
Copy link
Author

@Chuxel Have you looked at https://github.com/abiosoft/colima as a user friendly layer on top of Lima? It still uses the docker-cli and makes it as simple as three command to be up and running:

brew install colima
brew install docker
colima start

I followed https://www.arthurkoziel.com/replacing-docker-desktop-for-mac-with-colima/ and it seems to be working great for me and lots of colleagues are reporting the same.

Considering that the deadline for paying for Docker Desktop is at the end of this month, it would be nice to point people to Dev Containers and the Remote - Containers as a great solution to that, especially since Windows users can use Remote - WSL.

Or has there been any work on the Dev Containers on MacOS over Remote - SSH that you mentioned earlier?

@Chuxel
Copy link
Member

Chuxel commented Jan 26, 2022

@voxpelli SSH + Containers support has indeed been released! https://code.visualstudio.com/docs/remote/containers#_open-a-folder-on-a-remote-ssh-host-in-a-container

@sanmai-NL
Copy link

@Chuxel

It is recommended to add nerdctl (Docker-compatible CLI for containerd, with support for Compose) support, or provide CRI (Container Runtime Interface) interface support like Kubernetes CRI

@kebyn Thanks for the input! Please log a separate feature request to support nerdctl+containerd. It is unfortunately currently missing key things like --mount but I'm sure this will change in time.

$ nerdctl run ---help
...
      --mount stringArray           Attach a filesystem mount to the container
...
$   nerdctl version
Client:
 Version:	v0.23.0
 OS/Arch:	linux/amd64
 Git commit:	660680b7ddfde1d38a66ec1c7f08f8d89ab92c68
 buildctl:
  Version:	v0.10.4
  GitCommit:	a2ba6869363812a210fcc3ded6926757ab780b5f

Server:
 containerd:
  Version:	v1.6.8
  GitCommit:	9cd3357b7fd7218e4aec3eae239db1f68a5a6ec6
 runc:
  Version:	1.1.4
  GitCommit:	5fd4c4d144137e991c4acebb2146ab1483a97925

Like Podman, it is also is not a replacement for Docker Desktop on its own, so it's not something we would suggest the average user install at this point - that is what the notice that currently exists is intended to handle (a "double click-on-installer-and-you-are-done" experience for macOS and Windows in particular). This issue is not about supporting alternate solutions since each will have their own work to be as drop-in.

Not sure what you mean here. nerdctl is bundled and can be enabled with Rancher Desktop, which is a very user friendly and a desktop app.

A fully cross-platform container orchestration desktop app that is otherwise attractive to developers may be out of reach for now. But please don't lose the user base that is leaving Docker Inc. now.

@Chuxel
Copy link
Member

Chuxel commented Nov 18, 2022

@sanmai-NL The landscape has changed in the last year since this was initially logged, yep. Options like colima exist as well (doc'd here). BTW - For those interested in contributing improvements for their favorite runtime, https://github.com/devcontainers/cli is the place to contribute since this is used under the hood.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
containers Issue in vscode-remote containers feature-request Request for new features or functionality
Projects
None yet
Development

No branches or pull requests

6 participants
@voxpelli @Chuxel @sanmai-NL @mgudmund @kebyn and others