Windows下使用Docker的一些经验
Windows下使用Docker的一些经验
- 安装Docker Toolbox. from link: https://www.docker.com/toolbox
- Docker Toolbox 包括了Kitematic, VirtualBox, Boot2Docker
- Kitematic还处在Alpha阶段,bug不少,经常启动一两次后,boot2docker就启动不了了。各种错误,什么证书与IP地址不匹配,IP连不上什么的。建议无视。直接用VirtualBox就可以了。
- VirtualBox没什么问题,还算好用。就是不要去点里面的设备-〉安装增强功能…,点了以后会把Boot2Docker的虚拟光驱卸掉,换上VirtualBox的扩展工具光盘,然后Boot2Docker就启动不了了。误点以后,把光盘换回去,应该也是可以恢复的。
- Boot2Docker, 机器打开了,是一个TinyCoreLinux的系统,可能因为系统是一个iso光盘上的,所有的更改都不会保存,下次启动就不见了。比如你在用户目录下建的文件,关机后,再开,就没有了。能保存数据的目录是/mnt/sda1/目录下。
- 注册hub.docker.com帐号,在Git建立Dockerfile, 并通过Webhooks & Services建立与hub.docker.com的连接,每次Push后,自动Build image.
- 在Boot2Docker中docker pull上一步的image.这步需要比较长的时间,视乎你image的大小。
- 因为是做开发用的,而开发主要在windows下进行,如何在host和docker里共享文件就比较重要。在这里尝试了几种方法,
- 首先想到的是把windows里的文件夹通过virtualbox共享文件夹mount到Boot2Docker中.通过几个操作是可以做到。 http://tuhrig.de/mount-windows-folder-to-boot2docker-vm/ 。但是共享进来的目录在boot2docker中做npm install时会出错,http://askubuntu.com/questions/269727/npm-errors-when-installing-packages-on-windows-share, 要打no-bin-links,另外,windows不支持太长的目录名,我是用nodejs开发的,有些包的依赖很深 ,整个路径超长,windows容易出错。所以就否决了这个方法。
- 后来想的办法是通过SAMBA共享boot2docker的文件到host上。
- 首先在/var/lib/也就是/mnt/sda1/var/lib下,建程序目录
- docker pull dperson/samba , 这是一个samba的docker image.可以直接运行一个带samba服务的容器。
- docker run -v 要共享的目录:/目录名称 dperson/samba -S “共享名称;共享的目录”
- 在host上, 通过\\docker主机ip就可以访问到这个目录。
- 在docker里,就把这个目录挂载上去。这样就实现目录的共享。
- Docker Compose 是Docker的编排工具。可以简化运行容器时的一些命令。比如端口映射,卷的加载,容器间的链接。
- Windows版的Docker Toolbox是不带Docker Compose的。需要另装。
- 装compose需要先安装python, 再装pip, 才能pip install compose.
- 结果 tce-load -i python-distribute, 成功了以后, python --version, 还是python not found.我怀疑是boot2docker是只读的问题。重启后,刚安装的python就不见了。
- 后来找到了一个docker compose的image, dduportal/docker-compose/, 通过他就可以运行docker compose而不用在boot2docker中安装。是一个比较好的可行的方案。
刚开始学Docker,累积了一些粗浅经验,大家见笑了。
4 回复
不错,棒棒哒
装个debian 最小化安装到vbox里,在里边装docker就好了
windows下boot2docker好像不稳定?
如果担心依赖深的话, 可以考虑用npm >= 3.0。