资讯专栏INFORMATION COLUMN

Docker for Mac 初体验

shuibo / 2286人阅读

摘要:而前不久推出了和的全新版本,允许以更贴近用户透明的方式运行。在使用命令之前,必须要使用命令初始化各类环境变量用于告知命令如何与虚拟机内的通信是一个原生的苹果应用程序,被安装到目录。不过现在依旧存在许多问题,比如没有设置各项参数的接口。

Docker 作为一个集成的、易于部署的环境,在很多方面都有广泛的应用,但是由于其使用了 Linux 内核的容器技术,所以很依赖 Linux 环境,在其他系统环境下必须要使用虚拟机启动一个 Linux 系统然后在此基础上使用 Docker,非常不方便。而前不久 Docker 推出了 Mac 和 Windows 的全新 beta 版本,允许 Docker 以更贴近用户、透明的方式运行。笔者也下载了 beta 版本尝鲜,最新版本是 1.11.1-beta10,这里只讲解 Mac 平台。

Docker for Mac vs Docker Toolbox

Docker for Mac 本质上还是创建了一个 Linux 虚拟机,然后在上面运行 Docker Daemon,Mac 本身存在 Docker 二进制文件作为客户端,但是设计上相比之前的 Docker Toolbox 就更加巧妙了。

Docker Toolbox

Docker 工具箱会将 dockerdocker-composedocker-machine 安装到 /usr/local/bin 目录下,同时安装 VirtualBox。工具箱通过 docker-machine 虚拟化一个 Linux 环境,这个环境运行 boot2docker 系统,其中包含了一个 Docker Engine 并且使用主机 $HOME/.docker/machine/machines/default 上存放的证书通信。
在使用 dockerdocker-compose 命令之前,必须要使用 eval $(docker-machine env default) 命令初始化各类环境变量用于告知 docker 命令如何与虚拟机内的 Docker Daemon 通信

Docker for Mac

Docker for Mac 是一个原生的苹果应用程序,被安装到 /Application 目录。安装时会创建 /usr/local/bin 目录下的 dockerdocker-composedocker-machine 符号链接,这些符号链接指向 ~/Library/Group Containers/group.com.docker/bin 目录下的各类文件,而 ~/Library/Group Containers/group.com.docker/bin 的文件实际上也是符号链接,他们指向 /Applications/Docker.app/Contents/Resources/bin 目录下的实际二进制文件。

Docker for Mac 使用通过 Hypervisor.framework 提供的轻量级的 xhyve 虚拟化技术

Docker for Mac 不使用 docker-machine 管理虚拟机

Docker for Mac 不通过 TCP 端口通信,反而使用 /var/tmp/docker.sock 套接字文件通信(实际上是将 /var/tmp 目录挂载到了虚拟机中,虚拟机在其中生成套接字文件)

由于使用了 xhyve 虚拟机,所以可以模拟不同架构的处理器,这样开发者就直接能在 Mac 上使用 Docker 使用诸多平台的镜像文件,比如 arm 等。

为了能主机虚拟机共享文件,Docker 使用 osxfs 作为全新的文件共享方案,在很多方面都有全新的特性,比如在文件权限、命名空间、文件所有者、文件系统事件、挂载点、符号链接、文件类型、扩展属性等方面都有了全新的内容,并且,所有产生的日志都能通过 syslog 查询,非常方便。不过现在依旧存在许多问题,比如没有设置 docker daemon 各项参数的接口。如果需要设置 registry-mirror 则必须手动使用 pinata set daemon 命令设置 daemon.json 内容。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/26586.html

相关文章

  • Python 体验

    摘要:广告欢迎大家到路飞学城学习很喜欢薪时代这个词所以我们要拥抱人工智能拥抱前提下载,如果是电脑会自带。 广告:欢迎大家到 路飞学城 学习 Python~ 很喜欢 Python 薪时代 这个词~所以我们要拥抱 人工智能~拥抱 Python~ 前提:下载 Python,如果是 Mac 电脑会自带 Python。 Hello World! Mac 电脑打开终端输入: cd desktop tou...

    roundstones 评论0 收藏0
  • WebAssembly 体验:从零开始重构计算模块

    摘要:初体验从零开始重构计算模块从属于笔者的前端入门与工程实践,更多相关资料文章参考学习与实践资料索引和学习与实践资料索引。不过笔者也只是了解其概念而未真正付诸实践,本文即是笔者在将我司某个简单项目中的计算模块重构为过程中的总结。 WebAssembly 初体验:从零开始重构计算模块从属于笔者的 Web 前端入门与工程实践,更多相关资料文章参考WebAssembly 学习与实践资料索引和 ...

    netmou 评论0 收藏0
  • Terraform体验(二) 第一个demo执行

    摘要:初始化在终端中执行。首次执行初始化操作,会有较长的时间去获取中定义的信息,在第一次初始化后没有信息的变化,可以跳过初始化直接开始部署。执行部署命令时,会将的列出来展示给用户,并由用户确定执行。则删除由创建的容器。通过Terraform在本地运行docker nginx前置条件: 1. 安装好windows docker 2. 安装好terraform安装docker安装windows doc...

    Tecode 评论0 收藏0
  • Docker体验——踩过的那些坑!

    摘要:原因其实这个报错不需要下载最新文件,而是文件没有放到正确的位置。重启电脑后按或进入界面不同主板型号进入所需按键不同。端口映射环境下可能不存在这个问题坑在下部署了应用服务并进行了端口映射。 2018‎年‎3‎月‎6‎日 Docker安装 环境:windows7 安装包:DockerToolbox-17.10.0-ce.exe (下载地址:http://mirrors.aliyun.co...

    Jrain 评论0 收藏0
  • Flutter的体验--次配置的问题

    摘要:运行的时候,执行报错解决方法可能需要更新通过直接在里面运行会报错解决方法的版本太低,升级版本或者使用低版本的进行验证。首先参照官方文档进行搭建Mac下的环境 ,然后就会遇到以下问题: 1.在下载了Flutter 之后,执行Flutter doctor之后,报错: Could not resolve URL https://pub.flutter-io.cn. Unable to pu...

    番茄西红柿 评论0 收藏0

发表评论

0条评论

shuibo

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<