docker machine 用了似乎就不用装 docker 了?

2018-07-13 11:52:45 +08:00
 salamanderMH

问题描述

想试试docker swarm,然后发现它需要建立一些docker machine,docker machine 就是跑了一个真正的虚拟机了,这个虚拟机里头会内嵌 Docker Engine (也就是里头可以用 docker 的那些命令),在 windows 上安装 docker 的时候,其实 docker 引擎和 docker machine 都会装上的,有个困惑是有了 docker machine,也就不需要 docker 引擎了。

windows 上试用

这是我用docker-machine create创建的一些 machine: 。docker 引擎本身只是做个进程和网络还有其他资源的隔离吧( linux 上的 namespaces )。 另外还有个疑问,开多个 docker machine 也该也挺费资源的吧(总比容器要多)。

2808 次点击
所在节点    分享发现
13 条回复
ai277014717
2018-07-13 14:04:49 +08:00
个人理解 docker machine 就像是 ssh,远程操作容器的一个入口。不消耗资源。
ai277014717
2018-07-13 14:05:10 +08:00
有误请打脸。
salamanderMH
2018-07-13 15:23:16 +08:00
@ai277014717 不是吧,容器都是直接 ssh 的,docker machine 的目的是让你在 machine 里跑容器,然后可以多节点,作为 worker 的 machine
rockyou12
2018-07-13 15:35:06 +08:00
docker machine 就是开个虚拟机给你用 docker,windows 的原生 docker (基于 hyper-v )和 linux 上的体验差不多。但两个实现差距很大,由于 hyper-v 和 v-box 不兼容所以也无法同时用。
salamanderMH
2018-07-13 16:03:39 +08:00
@rockyou12 是的,有个问题是 docker engine 不是可以不用了嘛?我在 machine 里弄就行了
rockyou12
2018-07-13 16:22:19 +08:00
@salamanderMH 确实回答不了应为从来没用过……不是直接开虚拟机在 linux 上用就是直接用 windows 的 docker
salamanderMH
2018-07-13 16:30:16 +08:00
@rockyou12 还是感谢回答的,docker machine 这个东西,我也是刚用
感觉 docker 加了很多额外的东西,让它不存粹了,毕竟有时候就是要帮我开个容器,跑服务就行了
ai277014717
2018-07-13 17:27:49 +08:00
@salamanderMH 重新表达一下。我的意思 docker machine 的功能只不过是向目标系统发送指令接受信息,所以不占资源。
salamanderMH
2018-07-13 17:32:46 +08:00
@ai277014717 不是的,本身开个 machine 就是跑个虚拟机了
ai277014717
2018-07-13 17:47:20 +08:00
@salamanderMH 先声明我没怎么用过,也许说的不对。 看下官方的介绍。

You can use Machine to install Docker Engine on one or more virtual systems. These virtual systems can be local (as when you use Machine to install and run Docker Engine in VirtualBox on Mac or Windows) or remote (as when you use Machine to provision Dockerized hosts on cloud providers).

docker-machine 可以跑在本地或其他机器。跑在本地感觉多此一举直接用 docker 就可以。我猜你应该就是本地自己玩呢。
假如你的容器挂了你要怎么重启呢?
可以 ssh 到主机(非容器 vps 主机)重新启动。另一种方式就是使用 docker-machine
Reficul
2018-07-13 20:07:05 +08:00
@ai277014717 docker machine 貌似是用来快速创建 docker 环境的。单纯控制远程主机的 docker daemon 可以在 docker client 上加上-H 参数( daemon 需要监听在网络上,而不是 domain socket )
YzSama
2018-07-15 22:29:15 +08:00
@ai277014717 它的另一个作用是方便你管理 docker 机器。在你有多台未安装 docker 的机器(虚拟机) 的情况下,快速帮你安装并管理 docker
salamanderMH
2018-07-15 22:54:43 +08:00
@YzSama 快速装 docker,另外也是为了集群

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/470523

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX