MAC上安装docker

在MAC上安装docker for mac后,docker程序会在用户登录mac后自动启动,而如果用户没有登录,而是通过ssh远程登录的情况下,docker是无法启动的,在配置launchctl也无法配置自动启动命令。

经过一番搜索后,可以使用dlite来通过命令启动docker。

1.项目地址:

https://github.com/nlf/dlite

2.在release中下载编译好的二进制文件,将文件放到PATH下,最简单的放到/usr/local/bin/目录下,然后执行

sudo dlite init

注意需要给dlite可执行权限

chmod +x dlite

3.执行命令后,开始询问创建虚拟机的参数,一路回车,但是最后报错

1
2
3
4
Saving configuration: done
Creating ssh key pair: done
Adding host to ssh config: ERROR!
Adding host to ssh config: | open /var/root/.ssh/config: no such file or directory

手动创建.ssh目录以及config文件

sudo mkdir /var/root/.ssh

sudo touch /var/root/.ssh/config

然后重新执行sudo dlite init

而后报新的错误

1
2
3
Creating tool binaries: done Creating tool binaries: |
Creating disk: ERROR!
signal: trace/BPT trap

需要安装依赖

brew install opam golang libev

opam init

eval opam config env

opam install uri qcow.0.7.0 conf-libev logs fmt qcow-format

然后仍然报错,信息

1
2
Next we'll run a few steps that require sudo, you may be prompted for your password.
Creating /etc/resoModifying /etc/exports: ERROR! done

根据github上的issue

https://github.com/nlf/dlite/issues/218

问题在于执行sudo dlite init是不能加sudo,再次执行

dlite init

即可

dlite start

执行docker命令报错

1
2
$ docker ps
Error response from daemon: Unable to connect to the virtual machine

执行ssh docker@local.docker 报错。 正常Dlite 会自动添加 local.docker 到 OS X 的 hosts 文件内。

需要手动更改hosts文件

dlite ip

查看ip 为192.168.64.2

sudo vi /etc/hosts

增加一行

1
192.168.64.2 local.docker

后执行docker ps就可以了

1
2
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

可参考链接

http://holys.im/2016/02/22/run-docker-on-osx-with-dlite/

如果您觉得对您有帮助,谢谢您的赞赏!