V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
salamanderMH
V2EX  ›  分享发现

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

  •  
  •   salamanderMH · 2018-07-13 11:52:45 +08:00 · 2723 次点击
    这是一个创建于 2107 天前的主题,其中的信息可能已经有所发展或是发生改变。

    问题描述

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

    windows 上试用

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

    13 条回复    2018-07-15 22:54:43 +08:00
    ai277014717
        1
    ai277014717  
       2018-07-13 14:04:49 +08:00
    个人理解 docker machine 就像是 ssh,远程操作容器的一个入口。不消耗资源。
    ai277014717
        2
    ai277014717  
       2018-07-13 14:05:10 +08:00
    有误请打脸。
    salamanderMH
        3
    salamanderMH  
    OP
       2018-07-13 15:23:16 +08:00
    @ai277014717 不是吧,容器都是直接 ssh 的,docker machine 的目的是让你在 machine 里跑容器,然后可以多节点,作为 worker 的 machine
    rockyou12
        4
    rockyou12  
       2018-07-13 15:35:06 +08:00
    docker machine 就是开个虚拟机给你用 docker,windows 的原生 docker (基于 hyper-v )和 linux 上的体验差不多。但两个实现差距很大,由于 hyper-v 和 v-box 不兼容所以也无法同时用。
    salamanderMH
        5
    salamanderMH  
    OP
       2018-07-13 16:03:39 +08:00
    @rockyou12 是的,有个问题是 docker engine 不是可以不用了嘛?我在 machine 里弄就行了
    rockyou12
        6
    rockyou12  
       2018-07-13 16:22:19 +08:00
    @salamanderMH 确实回答不了应为从来没用过……不是直接开虚拟机在 linux 上用就是直接用 windows 的 docker
    salamanderMH
        7
    salamanderMH  
    OP
       2018-07-13 16:30:16 +08:00
    @rockyou12 还是感谢回答的,docker machine 这个东西,我也是刚用
    感觉 docker 加了很多额外的东西,让它不存粹了,毕竟有时候就是要帮我开个容器,跑服务就行了
    ai277014717
        8
    ai277014717  
       2018-07-13 17:27:49 +08:00
    @salamanderMH 重新表达一下。我的意思 docker machine 的功能只不过是向目标系统发送指令接受信息,所以不占资源。
    salamanderMH
        9
    salamanderMH  
    OP
       2018-07-13 17:32:46 +08:00
    @ai277014717 不是的,本身开个 machine 就是跑个虚拟机了
    ai277014717
        10
    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
        11
    Reficul  
       2018-07-13 20:07:05 +08:00 via Android
    @ai277014717 docker machine 貌似是用来快速创建 docker 环境的。单纯控制远程主机的 docker daemon 可以在 docker client 上加上-H 参数( daemon 需要监听在网络上,而不是 domain socket )
    YzSama
        12
    YzSama  
       2018-07-15 22:29:15 +08:00 via iPhone
    @ai277014717 它的另一个作用是方便你管理 docker 机器。在你有多台未安装 docker 的机器(虚拟机) 的情况下,快速帮你安装并管理 docker
    salamanderMH
        13
    salamanderMH  
    OP
       2018-07-15 22:54:43 +08:00
    @YzSama 快速装 docker,另外也是为了集群
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   925 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 20:47 · PVG 04:47 · LAX 13:47 · JFK 16:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.