LaraDock —— Docker 版 Laravel Homestead:让你在Docker中轻松运行Laravel应用
什么是LaraDock声明:此文已废弃,最新版教程请点击https://laravel.geekai.co/post/7691.html
LaraDock 和 Laravel Homestead 类似,只不过运行在 Docker 而非 Vagrant 中。LaraDock 可以让我们在数秒之内轻松在 Docker 中运行 Laravel 应用。
LaraDock 致力于让开发过程变得简单,包含了一个已经预包装好的Docker映像以便为我们提供一流的开发环境而不需要再手动安装PHP、Nginx、MySQL、Redis以及其他运行Laravel应用可能要用到的软件或工具。
Docker vs Vagrant
说到这里,首先我们来了解什么是Docker:Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。
接下来我们来讨论为什么使用Docker而不是Vagrant:从时间上来看,Vagrant提供虚拟机需要数分钟,而Docker只需数秒;此外,从体量上来看,Vagrant提供的是完整的虚拟机,而Docker提供的是轻量级的虚拟容器,这些虚拟容器共享同一个内核并且允许在独立进程中运行。
LaraDock内置软件
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地址:
- 如果你使用的是Linux:IP地址默认是
127.0.0.1
,因为容器可以直接在本地运行 - 如果你使用的是Mac或Windows并且使用的是
docker-machine
:输入docker-machine ip {vm-name-here}
命令查看(默认IP是192.168.99.100
) - 如果你使用的是Mac或Windows并且使用的是
boot2docker
:输入boot2docker 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.dev REDIS_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=redis SESSION_DRIVER=redis
7)最后在docker
目录下使用如下命令运行容器:
docker-compose up
如果你想要在后台运行容器可以使用docker-compose up -d
命令:
注意:第一次运行上述命令时会花费5分钟左右(取决于你的网速)下载映像到本地。
8)在浏览器中访问http://laravel.dev
。
更多使用介绍可参考官方文档:http://laradock.github.io/laradock/
GitHub地址
- LaraDock: https://github.com/LaraDock/laradock
- Docker-Images: https://github.com/LaraDock/docker-images
15 Comments