美文网首页后端/后台(Back-end)Awesome Docker程序员
使用Dinghy在你的Mac上构建Docker host

使用Dinghy在你的Mac上构建Docker host

作者: Kenshinsyrup | 来源:发表于2017-01-21 20:09 被阅读117次

    前言

    工作需要使用Docker,我们团队中使用过boot2dockerDocker Toolbox,并且短暂的接触过最新的Docker for Mac
    现状是:boot2docker已被官方标记为deprecated;Docker Toolbox捆绑VirtualBox;Docker for Mac抽风概率大(这个限于我们使用的时候)
    因此,目前我们团队选择使用Dinghy,本文是我安装Dinghy的一篇总结帖,会先罗列安装的过程,之后讲一下我踩的坑
    另外,如果文中有错误或没有讲明白的地方可以留言评论我会尽量更正,当然如果是能指出问题的话更加感谢

    介绍

    Dinghy是一套比较完善的适用于Mac系统下搭建Docker host的工具,致力于打造友好的Docker本地开发环境

    Dinghy的优点:

    • 不仅可以使用VirtualBox,Dinghy目前支持的虚拟机软件包括:VirtualBoxVMware FusionxhyveParallels
    • 使用NFS而非Virtual等虚拟机软件自带的文件系统进行文件共享,速度更快而且配置方便

    对于我个人来说,最直观的感受莫过于NFS相对于VirtualBox虚拟机自带的文件共享方式而言极小的资源消耗率,具体的数据没有测试,这里只能给出一点直观感受:在8G内存MBP下,使用Docker Toolbox自带的一套虚拟机系统(即使用VirtualBox自带文件共享方式)时,每次编译Golang程序会发现CPU和内存占用飙满,VirtualBox的运行状态界面显示此时最大资源消耗用于文件夹共享;使用Dinghy后,编译程序时CPU和内存一般能维持在50%左右
    如果你现在正在使用Docker Toolbox,完全可以无伤转移,Dinghy会利用Docker Machine在你的虚拟机软件中创建一个名为dinghy的虚拟机而完全不会影响你当前所有的其他虚拟机

    安装

    强烈推荐使用Homebrew安装所需内容
    1、安装Dinghy

    brew tap codekitchen/dinghy
    brew install dinghy
    

    2、安装Docker及Docker Machine

    brew install docker docker-machine
    

    3、创建虚拟机,我使用的仍然是VirtualBox
    创建之前,有必要了解以下虚拟机创建参数


    create参数说明.png

    假设你希望指定虚拟机软件为VirtualBox,其他参数默认

    dinghy create --provider virtualbox
    

    4、设置共享文件目录
    Dinghy支持自定义共享文件目录,只需将

    export DINGHY_HOST_MOUNT_DIR=/Users
    export DINGHY_GUEST_MOUNT_DIR=/Users
    

    写入~/.bash_profile即可,其中的/Users可替换为你喜欢的目录
    题外话,改完~/.bash_profile记得source ~/.bash_profile

    5、验证安装
    执行完前面3步后,打开VirtualBox应该能看到运行中的Dinghy


    VirtualBox截图.png

    回到终端,验证安装

    docker run hello-world
    
    docker helloworld.png

    6、Dinghy基本操作


    Dinghy基本操作.png

    总结

    Dinghy安装完成后,就可以像使用Docker Toolbox自带的default虚拟机一样来使用了
    下面说一下踩到的坑
    1、VirtualBox内虚拟机地址变化问题
    我的VirtualBox内有两台虚拟机:default和dinghy。先启动default时,虚拟机地址为192.168.99.100,然后关闭default,再启动dinghy,发现d虚拟机地址为192.168.99.101,这导致了在eval $(dinghy env)时报错

    Error.png
    关于Error checking TLS connection: Error checking and/or regenerating the certs的讨论有很多,但这并不是我们需要的。。。
    解决办法:关闭所有虚拟机,退出VirtualBox,关闭所有termianl窗口。然后重新开启termianl,在开启default或dinghy即可

    2、NFS failed to run

    NFS failed to run.png
    这个问题都会生成错误日志,截图中有说明位置。比如我遇到的问题日志如下:
    unfsd error.png
    解决方式:终端执行brew link unfs3,之后重启Dinghy即可

    相关文章

      网友评论

        本文标题:使用Dinghy在你的Mac上构建Docker host

        本文链接:https://www.haomeiwen.com/subject/smcnbttx.html