Download - 使用 Vagrant/Docker 打造团队跨平台开发环境
‹#›
1.我们可以通过 Vagrant 封装⼀一个 Linux 的开发环境,分发给团队成员。成员可以在⾃自⼰己喜欢的桌⾯面系统(Mac/Windows/Linux)上开发程序,代码却能统⼀一在封装好的环境⾥里运⾏行。!
2.通过内⺴⽹网FTP托管box!3.通过git管理vagrantFile(*)
‹#›
1.安装 VirtualBox!!
下载地址:https://www.virtualbox.org/wiki/Downloads !
!
* 根据提⽰示安装即可 * 虽然 Vagrant 也⽀支持 VMware,不过 VMware 是收费的,对应的 Vagrant 版本也是收费的
‹#›
2. 安装 Vagrant!!
下载地址:http://downloads.vagrantup.com/ !
*根据提⽰示安装即可!!安装完成后
还需要下载官⽅方封装好的基础镜像:http://www.vagrantbox.es/
‹#›
3. 添加镜像到 Vagrant!!$ vagrant box add $YOUR_NAME $BOX_PATH!!!$YOUR_NAME是我们给这个 box 命名的名字,$BOX_PATH是box⽂文件路径(⽂文件路径,⺴⽹网络路径均可)
‹#›
4. 初始化开发环境!$ mkdir dev # 不解释!$ cd dev # 不解释!# 初始化!$ vagrant init hahaha!# 启动环境!$ vagrant up!# 使⽤用ssh登陆,windows需要ssh客户端连接,⽤用户密码均为vagrant,root密码为vagrant!$ vagrant ssh !!
‹#›
6. 打包分发!当你配置好开发环境后,退出并关闭虚拟机。在终端⾥里对开发环境进⾏行打包,运⾏行:!
$ vagrant package!!
打包完成后会在当前⺫⽬目录⽣生成⼀一个 package.box 的⽂文件,将这个⽂文件传给其他⽤用户,其他⽤用户只要添加这个 box 并⽤用其初始化⾃自⼰己的开发⺫⽬目录就能得到⼀一个⼀一模⼀一样的开发环境了(共享⽂文件夹内容不会打包)
‹#›
其他常⽤用命令$ vagrant box add <boxName> <boxPath> # 初始化 !
$ vagrant init <boxName> # 初始化 !
$ vagrant up # 启动虚拟机 !
$ vagrant halt # 关闭虚拟机 !
$ vagrant reload # 重启虚拟机 !
$ vagrant ssh # SSH ⾄至虚拟机 !
$ vagrant status # 查看虚拟机运⾏行状态 !
$ vagrant destroy # 销毁当前虚拟机
‹#›
注意事项# Apache 配置添加:!
EnableSendfile off!!# Nginx 配置添加:!
sendfile off;!!# 重启请使⽤用,否则会出现重启后,共享⽂文件夹⽆无法挂载的情况!$ vagrant reload
‹#›
Docker是什么Docker是⼀一个部署⼯工具。它⽤用 Linux 内核的资源分离机制建⽴立独⽴立的 Docker Container 来提供 ⼀一个抽象层,让你可以下⼏几个指令,透过⼏几个 Container 就将你的服务、应⽤用部署起来。
!!例如说要部署⼀一个 web app,你可能只需要两个 Container ,⼀一个跑 psql ,⼀一个跑 nginx,共需要 两个指令。
‹#›
安装Dockerubuntu:http://yeasy.gitbooks.io/docker_practice/content/install/ubuntu.html!!centos:http://yeasy.gitbooks.io/docker_practice/content/install/centos.html
‹#›
获取镜像可以使⽤用 docker pull 命令来从仓库获取所需要的镜像。!$ sudo docker pull ubuntu:12.04!!上⾯面的命令是从 Docker Hub 仓库下载⼀一个 Ubuntu 12.04 操作系统的镜像。!!使⽤用该镜像创建⼀一个容器,让其中运⾏行 bash 应⽤用:!$ sudo docker run -t -i ubuntu:12.04 /bin/bash!
‹#›
创建容器创建⼀一个容器,让其中运⾏行 bash 应⽤用:!$ sudo docker run -t -i ubuntu:12.04 /bin/bash!
!或者以守护进程⽅方式运⾏行!$ sudo docker run -d -p 80:80 -v /www:/var/www ubuntu:12.04 /sbin/init!!-p参数是指定端⼝口转发,-v参数是指定共享⽂文件夹!
‹#›
创建镜像安装完所需的服务后,可以使⽤用commit提交容器来创建⼀一个镜像!$ sudo docker commit $containerId!!容器id可以使⽤用ps命令获得!$ sudo docker ps -lq!这样可以获取到最新的容器id
‹#›
常⽤用命令
docker pull 下载 image!docker push 上传 image!docker commit 由容器製作新的镜像!docker diff 观看容器的改变!docker run 创建容器并运⾏行!docker ps 查看⺫⽬目前的容器!docker images 查看所有镜像!docker build 由DockerFile创建镜像!...
‹#›
参考资料• https://docs.vagrantup.com/v2/ (官⽅方⽂文档) !
• http://segmentfault.com/a/1190000000264347 (使⽤用 Vagrant 打造跨平台开发环境)!
• https://www.gitbook.com/book/yeasy/docker_practice(Docker —— 从⼊入⻔门到实践)