最近,Docker 宣布 Docker Desktop 将不再对某些类型的用户免费。请参阅博客文章中的公告。
\n我不需要 Docker Desktop\xc2\xae 独有的任何功能。我在一台装有 debian 的笔记本电脑上使用了 docker,这个版本对我来说已经足够了。
\n有没有办法在macOS上安装linux版本的docker?我需要引擎和 cli 工具,仅此而已。我运行构建命令、推送、标记、运行、docker-compose 等。
\nruz*_*ack 19
docker 有一个替代品,那就是podman。
brew install podmanpodman machine initpodman machine startpodman run -d -p 8000:80 nginxpodman pscurl localhost:8000它底层使用QEMU进行虚拟化,并默认设置一台Fedora CoreOS的机器。
要在安装后访问默认计算机和虚拟化环境的详细信息:
cat ~/.config/containers/podman/machine/qemu/podman-machine-default.json
Run Code Online (Sandbox Code Playgroud)
dir*_*rkt 15
在我的 Macbook 上,我通过 homebrew 安装了 docker
brew install docker docker-compose docker-machine xhyve docker-machine-driver-xhyve
Run Code Online (Sandbox Code Playgroud)
(虽然这是在 docker 桌面变得非免费之前的事情,但我认为它仍然可以工作)
它使用 xhyve 作为虚拟机,因此基本上是在 xhyve 中运行 Linux 发行版,然后在该 Linux 发行版中运行 Docker。
你需要做一些配置,我按照这篇文章进行的。
我创建虚拟机的命令行是
docker-machine create default --driver xhyve --xhyve-experimental-nfs-share=true --xhyve-disk-size "40000"
Run Code Online (Sandbox Code Playgroud)
据我所知,docker 在功能上与 MacOS 不兼容。我的 Macbook 上运行着 docker 桌面,据我所知,这是通过 docker 桌面创建一个 Linux 虚拟机并在其中运行 Docker 引擎来实现的。
\n这解释了为什么docker桌面有分配资源的概念,包括“磁盘映像大小”,与docker引擎本身无关。
\n\n\n有没有办法在macOS上安装linux版本的docker?
\n
不,没有 Linux 虚拟机就不行。这是因为 Docker 是命名空间和cgroup的包装器,它们都是 Linux 概念,在 MacOS 内核中没有实现。
\n由于这两个功能是容器技术的核心,因此您不太可能发现其他非 Docker 解决方案(包括 Podman)也能工作……除非您使用 Linux 虚拟机。
\n\n\n我不需要 Docker Desktop\xc2\xae 独有的任何功能
\n
可能是这样,我不知道你的需求。但请注意,您可能正在使用 docker 桌面的某些功能,但您没有意识到这些功能是“功能”。例如,docker 绑定挂载是 docker 中的核心概念,但是为了让它们在 Mac 上工作,docker 桌面还必须负责弥合 MacOS 和 Linux 虚拟机之间的差距。
\n要运行您自己的虚拟机,您可以考虑使用Virtualbox等虚拟机管理程序在 Mac 上运行您自己的 Linux 虚拟机。
\n小智 5
我发现的另一个选择是安装minikube。
Minikube 将取代 Docker 的 Kubernetes。
注意:这有一些缺点。
brew install minikube
Run Code Online (Sandbox Code Playgroud)
然后通过brew安装纯docker:
brew install docker
Run Code Online (Sandbox Code Playgroud)
通过brew的Hyperkit:
brew install hyperkit
Run Code Online (Sandbox Code Playgroud)
如果您愿意,也可以使用 Virtuabox 而不是 hyperkit。更多详细信息,请参阅Minikube 的文档。
| 归档时间: |
|
| 查看次数: |
57489 次 |
| 最近记录: |