LaraDock —— Docker 版 Laravel Homestead:让你在Docker中轻松运行Laravel应用

laradock

声明:此文已废弃,最新版教程请点击http://laravelacademy.org/post/6569.html

什么是LaraDock

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地址方式如下:

2016-03-15_230617

可见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_HOSTREDIS_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_DRIVERSESSION_DRIVER设置为redis

CACHE_DRIVER=redis
SESSION_DRIVER=redis

7)最后在docker目录下使用如下命令运行容器:

docker-compose up

如果你想要在后台运行容器可以使用docker-compose up -d命令:

2016-03-15_232240

注意:第一次运行上述命令时会花费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

学院君

学院君 has written 550 articles

资深PHP工程师,Laravel学院院长