体验最新的 native Docker for mac


刚刚收到docker公司 发来的邮件,我已经得到邀请试用native Docker。 特地给大家谈谈这个新产品的感受。

先介绍一下新特性以及和docker toolbox 的基本区别:

  • Mac系统需支持硬件虚拟化(hardware virtualization), OS X 10.10.3+ 或者 10.11 (OS X Yosemite or OS X El Capitan).
  • Docker for Mac不使用VirtualBox,而是xhyve, 建在 Alpine Linux上,是在OS X10.10 Yosemite以上版本的Hypervisor.framework之上的轻量级的OS X的虚拟化解决方案。
  • 安装docker for Mac不会影响 docker toolbox (toolbox用的是docker machine)
  • 安装了docker for mac后,可以直接使用docker 的命令
  • docker for mac 的 API 连接在 /var/tmp/docker.sock
  • docker for mac 的安装目录在/Applications/Docker.app/Contents/Resources/bin, 随后被链接到/usr/local/bin/
  • docker for Mac提供binfmt_misc多架构的支持,这样你就可以运行不同的Linux体系结构,如ARM,MIPS,ppc64le甚至s390x容器
  • OS XFS是一个新的共享文件系统解决方案,专属于docker for Mac。 OS XFS提供了近似完美自然的分享OS X文件系统系统给Docker容器。osxfs 不用root 运行。
  • 多了个有用的命令pinata,后面会介绍它的用法。
  • 软件自动更新。 从14号到今天23号,已经自动更新两次了。


下载地址是 : https://beta.docker.com/docs/

(要用docker 公司提供的token 激活的,你没有的话,需要去docker 的网站申请: https://beta.docker.com/)

分 mac 和 windows 两个版本:docker.dmg 和 docker.msi

我用的是macbook,就选择安装native docker for mac . 提示中,没有要求我卸载以前安装的docker toolbox.

安装过程很简单。

点击docker.dmg 后,将其拖入application 目录即可

Screen_Shot_2016-04-14_at_7.01_.52_AM_.png


版本是 1.11.0-beta6

Screen_Shot_2016-04-14_at_7.03_.14_AM_.png


安装中, 需要输入token 激活

Screen_Shot_2016-04-14_at_7.03_.55_AM_.png


Screen_Shot_2016-04-14_at_7.04_.20_AM_.png


确认需要root权限

Screen_Shot_2016-04-14_at_7.04_.32_AM_.png


询问是否需要复制以前安装的docker toolbox 的镜像和容器

Screen_Shot_2016-04-14_at_7.05_.05_AM_.png

这步我选择 NO。 因为以前从boot2docker转docker toolbox时,直接用光了硬盘空间。 导致安装出错,后来折腾的很久才重新安装成功。

安装完后,会在顶部菜单条里,多出个图标

Screen_Shot_2016-04-14_at_7.05_.21_AM_.png


这样就算安装好了。自己开个命令终端,就可以用了。 我初步试了基本的docker 命令,没有任何问题。
$ docker version
Client:
Version:      1.11.0-rc3
API version:  1.23
Go version:   go1.5.3
Git commit:   eabf97a
Built:        Fri Apr  1 23:33:49 2016
OS/Arch:      darwin/amd64

Server:
Version:      1.11.0-rc3
API version:  1.23
Go version:   go1.5.3
Git commit:   9b9022a
Built:        Mon Apr  4 15:24:07 2016
OS/Arch:      linux/amd64
505 bill:~


再也不需要手动设置docker 环境,以及查找docker machine 的IP 地址,不再借助virtualbox, 没有在virtualbox里产生新的box。用起来非常的自然。 已经是真正的溶于apple MAC OSX 里的 软件应用了

但是在pull image 的时候,似乎有了限制,不能同时下载所有的层,很多层,以及同时pull 其它镜像时,都是等待(waiting)状态。这个可能是新版的docker 的改动吧。

至于顶上的小图标,有下拉菜单。

Screen_Shot_2016-04-14_at_7.18_.11_AM_.png


具体功能有:
软件更新
更改内存 (但是暂时无法更改)
查看日志

Screen_Shot_2016-04-14_at_7.32_.44_AM_.png


用命令pinata设置内存,cpu

pinata set hypervisor native memory=4 ncpu=3


其它的命令

docker 的缺省hostname 是docker ,你可以用下面的命令设置自己喜欢的名字
$pinata set hostname banana

显示当前的设置
$ pinata list


第一个容器体验

$ docker run -d -p 8080:80 alexwhen/docker-2048
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0e5e071542f4 alexwhen/docker-2048 "nginx -g 'daemon off" About a minute ago Up 58 seconds 192.168.64.2:8080->80/tcp romantic_einstein

访问 http://docker.local:8080/ 就可以了 。

如果你希望直接用 localhost 或者 127.0.0.1 来访问,需要激活 port-forwarding (端口转发)

$ pinata set native/port-forwarding true
native/port-forwarding -> true
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a11c1db909d2 alexwhen/docker-2048 "nginx -g 'daemon off" 5 minutes ago Up 1 seconds 0.0.0.0:8080->80/tcp amazing_bohr

你会看到上面的ports 被转换成: 0.0.0.0:8080->80/tcp, 这样你就可以直接用localhost来访问了:

http://localhost:8080
http://127.0.0.1:8080

7 个评论

您好,请问下申请多久后能收到token?
我是上周申请的
最后应该访问 http://docker.local:8080/, 已经内置了这个 dns。

也可以通过设置 pinata set native/port-forwarding true 来吧端口映射到 mac 上,这样就可以使用 http://127.0.0.18080/ 了
谢谢指正,我已经更新了。
用公司的代理(corp proxy)访问和更新还是会有问题。大家想到方法的话,请提示。
终于用上了,这下方便多了
最新的beta13已经官方支持proxy代理服务器了。 但是有空间无法回收以及产生的日志过大的问题

要回复文章请先登录注册