LaraDock 和Laravel Homestead 类似,只不过运行在Docker 而非Vagrant 中。LaraDock 可以让我们在数秒之内轻松在 Docker 中运行 Laravel 应用。
LaraDock 致力于让开发过程变得简单,包含了一个已经预包装好的Docker映像以便为我们提供一流的开发环境而不需要再手动安装PHP、Nginx、MySQL、Redis以及其他运行Laravel应用可能要用到的软件或工具。
说到这里,首先我们来了解什么是Docker:Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。
接下来我们来讨论为什么使用Docker而不是Vagrant:从时间上来看,Vagrant提供虚拟机需要数分钟,而Docker只需数秒;此外,从体量上来看,Vagrant提供的是完整的虚拟机,而Docker提供的是轻量级的虚拟容器,这些虚拟容器共享同一个内核并且允许在独立进程中运行。
LaraDock内置的Docker映像包含的软件:
你可以编辑这些映像: https://github.com/LaraDock/docker-images
1)安装任意版本Laravel,或者使用已存在的Laravel项目
2)在Laravel项目根目录下克隆LaraDock到 docker 目录:
git clone https://github.com/LaraDock/laradock.git docker
3)安装完Docker Toolbox后,将其安装目录放到系统路径,然后查看Docker IP地址:
这里我们使用的是Windows环境并使用 docker-machine ,查看IP地址方式如下:
可见IP地址为 192.168.99.100 。
4)在 hosts 文件中映射Docker IP到 laravel.dev :
xxx.xxx.xxx.xxx laravel.dev
不要忘了将 xxx.xxx.xxx.xxx 替换成你的Docker IP地址,这里我的IP地址是192.168.99.100。
5)在上述第二步新创建的 docker 目录中,打开 docker-compose.yml 文件将 xxx.xxx.xxx.xxx 替换成你的Docker IP地址。
6)打开Laravel项目的 .env 文件,将 DB_HOST 、 REDIS_HOST 设置为 laravel.dev :
DB_HOST=laravel.devREDIS_HOST=laravel.dev
如果在 .env 中没有找到变量 REDIS_HOST ,到数据库配置文件 config/database.php 中将 127.0.0.1 替换成 laravel.dev :
'redis' => [ 'cluster' => false, 'default' => [ 'host' => 'laravel.dev', 'port' => 6379, 'database' => 0, ],],
如果你想要使用Redis作为缓存/Session驱动,打开 .env 文件将 CACHE_DRIVER 和 SESSION_DRIVER 设置为 redis :
CACHE_DRIVER=redisSESSION_DRIVER=redis
7)最后在 docker 目录下使用如下命令运行容器:
docker-compose up
如果你想要在后台运行容器可以使用 docker-compose up -d 命令:
注意:第一次运行上述命令时会花费5分钟左右(取决于你的网速)下载映像到本地。
8)在浏览器中访问 http://laravel.dev 。
更多使用介绍可参考官方文档: http://laradock.github.io/laradock/
LaraDock: https://github.com/LaraDock/laradock
Docker-Images: https://github.com/LaraDock/docker-images