前言
之前有用docker-machine
的方式在mac上实现了docker的使用,具体可以看这里:Mac下安装使用Docker
今天去Docker的官网逛了下,居然发现有原生的Mac app应用,地址:https://www.docker.com/products/docker#/mac
简单看了下文档,原理上仍然是通过虚拟机的方式,使用了xhyve 虚拟化技术,但大大提高了使用体验,基本上已经分不出跟原生mac app应用的区别.
入门文档:https://docs.docker.com/docker-for-mac/
安装
一 下载Docker.dmg.分stable和beta两个版,这里下载了stable版.
二 卸载原来的docker和docker-machine.如果之前没有安装,可以略过这一步. 具体根据原来的安装方式来卸载,我之前是用brew安装的,依然使用brew卸载:
selflydeMacBook-Pro:~ liyd$ brew uninstall docker-machine
selflydeMacBook-Pro:~ liyd$ brew uninstall docker
三 之后跟Mac的app安装方式一样,只需要将docker.app拖到Applications文件夹就可以了. 第一次运行的时候会让你输一下用户密码授权进行一些操作,之后会在上面的菜单栏中驻留一个图标.
查看/usr/local/bin目录,会发现多了以下几个symbolic link:
selflydeMacBook-Pro:~ liyd$ ll /usr/local/bin/ |grep docker
lrwxr-xr-x 1 liyd staff 64 10 15 16:55 docker -> /Users/liyd/Library/Group Containers/group.com.docker/bin/docker
lrwxr-xr-x 1 liyd staff 72 10 15 16:55 docker-compose -> /Users/liyd/Library/Group Containers/group.com.docker/bin/docker-compose
lrwxr-xr-x 1 liyd staff 72 10 15 16:55 docker-machine -> /Users/liyd/Library/Group Containers/group.com.docker/bin/docker-machine
lrwxr-xr-x 1 liyd staff 64 10 15 16:55 notary -> /Users/liyd/Library/Group Containers/group.com.docker/bin/notary
这个在docker启动时创建,如果不小心删除,只需要重启docker即可.
使用
到这里就可以像在Linux中一样使用docker了,完全省去了之前的docker-machine
及eval
操作.
更方便的一点是,之前使用docker-machine
时连接docker内应用如数据库连接时需要获取并使用创建的虚拟机IP,这个ip伴随着启动是可能会变的,而现在可以直接使用localhost
了.
恢复镜像
全新使用可以直接从官方pull需要的镜像,因为之前使用过docker-machine
,本地备份了镜像,直接恢复来的快一点,毕竟一个oracle镜像就2G多,重新pull要消耗大把的时间.
使用命令恢复镜像:
docker load -i ~/docker/oracle-backup.tar
却报出了如下错误:
Could not read CA certificate "/Users/liyd/.docker/machine/machines/oracle-dev/ca.pem": open /Users/liyd/.docker/machine/machines/oracle-dev/ca.pem: no such file or directory
这里让我蒙了一下,没听说过备份docker镜像还需要CA证书的.
看路径使用了我原来安装docker-machine
的目录,查看环境变量:
selflydeMacBook-Pro:~ liyd$ echo ${!DOCKER*}
DOCKER_CERT_PATH DOCKER_HOST DOCKER_MACHINE_NAME DOCKER_TLS_VERIFY
发现仍然有4个环境变量,查看其值依然是之前老的目录及虚拟机值,看来Homebrew卸载也不是那么干净.
但是我找遍/etc/profile,/etc/bashrc,~/.bash_profile发现均没有设置这些环境变量,不知道是哪里进去的,如有知道请告知下,谢谢!
既然找不到,直接把它删除:
selflydeMacBook-Pro:~ liyd$ unset ${!DOCKER*}
再次恢复镜像,成功!
使用Kitematic
在docker菜单中有个Kitematic选项,可以选择下载,目前还是beta版.
Kitematic是一个可视化的docker容器管理应用,如果之前有使用过虚拟机的话,会发现其界面及操作类似,很容易上手,具体看一下界面就能明白:
最后
总的来说Docker for Mac
比原来的docker-machine
简单方便不少,个人使用后感觉相当不错,推荐更新!