windows10 专业版 64位系统安装docker并使用 laradock 搭建 laravel 环境

windows10 专业版 64位系统安装docker

docker官网
docker官网安装文档

安装说明

  • windows 10 系统需要开启 Hyper-V

官方文档中有写到,必须开启 Hyper-V

开启方式如下图:

  1. 打开控制面板-程序-程序和功能-启用或关闭 windows 功能


    启用或关闭 windows 功能
  2. 找到有关 Hyper-V 的项,全部选中


    有关 Hyper-V 的选项,全部勾选
  3. 如果发现关于 Hyper-V 的选项无法开启,那么就需要进入 bios 开启虚拟化。开启方法见如下链接:

如何查看自己的Win10电脑是否能运行Hyper-V虚拟机

查看 Hyper-V 固件中启用的虚拟化是否开启的步骤:Win + R 输入 “msinfo32 ” 即可看到“系统信息”窗口。
进入 bios 开启固件虚拟化的方法步骤:进入 bios 设置界面,切换到 Advanced 标签,选中 CPU Configuration 设置 Intel Virtualization Technology 为 Enabled。(不同的主板可能会有不同的设置方法,主要是将 Intel Virtualization Technology 设置为 Enabled 即可)

  1. 再次打开【启用或关闭 windows 功能界面】开启 Hyper-V 所有选项。


    不管怎样,主要的步骤是开启 Hyper-V 所有选项
  • 下载 Docker Desktop for Windows desktop app

官方文档详细步骤
  1. 下载 Docker Desktop for Windows app

Docker Desktop Installer.exe 下载安装地址

  1. 下载完成之后,直接双击安装


    安装过程图01
安装过程图02
  1. 开启 docker
    直接可以通过小娜助手搜 docker 关键词,然后启动 Docker Desktop,不管怎样,主要是找到 Docker Desktop 应用,打开就好。


    本图通过小娜助手搜 docker 关键词打开
  2. 查看 docker 开启状态。


    桌面右下角会出现 docker 的图标,鼠标移到图标上面会出现 Docker Desktop is running 字样,即为打开

初次安装时,可能会提示你登录 docker 的账号,如果没有 docker 账号的话,可以去 docker 官网注册一下。

  1. 测试安装。
    任意位置打开 Windows PowerShell
// 查看 docker 版本
docker --version 

docker-compose --version

docker run hello-world
使用 PowerShell 和 cmd是一样的
  • 使用 laradock 搭建项目

  1. 将 laradock 项目代码克隆到本地:
git clone https://github.com/Laradock/laradock.git
下载 laradock 项目到本地
  1. 进入 laradock 目录将 env-example 复制一份并命名为 .env
cp env-example .env
复制配置文件
  1. 运行容器 (此时在 laradock 目录下)
docker-compose up -d nginx mysql redis workspace

如果指定端口已经被占用,运行上述命令会报错,关闭相应的服务再重新运行上述命令即可。

注:安装过程中,由于某些资源需要翻墙才能下载,建议安装并启用 VPN 后再执行上述命令。如果出现需要认证的下载资源无权下载,可以通过 Docker ID/密码 登录到 Docker 应用(点击状态栏 Docker 应用小图标就能看到登录菜单),注意这里必须用 Docker ID,不能用注册邮箱。在 Windows 下如果出现目录挂载失败,可以尝试在 Docker 设置中重新设置 Shared Drives。

  1. 打开项目的 .env 文件并添加如下配置:
DB_HOST=mysql
REDIS_HOST=redis
QUEUE_HOST=beanstalkd
  1. 在和 laradock 同级目录下新建 wwwroot 目录,用于存放代码


    新建 wwwroot 目录

新建 demo 文件夹,并写入 phpinfo(); 到 index.php 作为测试。


新建测试文件
  1. 此时需要再次在 .env 文件中修改 APPLICATION 配置项(新版本的 laradock 对应的配置项是 APP_CODE_PATH_HOST
APPLICATION=../wwwroot/
配置项目路径

这样就相当于为 wwwroot 与 Docker 的 /var/www 目录建立了软连接,然后我们修改 nginx 的配置文件,建立映射关系。

// 复制一份配置文件 demo.conf
cp ./laradock/nginx/sites/default.conf ./laradock/nginx/sites/demo.conf

修改成以下内容

server {

    listen 80;
    listen [::]:80;

    server_name demo.test;
    root /var/www/demo;
    index index.php index.html index.htm;

    location / {
         try_files $uri $uri/ /index.php$is_args$args;
    }

    location ~ \.php$ {
        try_files $uri /index.php =404;
        fastcgi_pass php-upstream;
        fastcgi_index index.php;
        fastcgi_buffers 16 16k;
        fastcgi_buffer_size 32k;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        #fixes timeouts
        fastcgi_read_timeout 600;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }

    location /.well-known/acme-challenge/ {
        root /var/www/letsencrypt/;
        log_not_found off;
    }
}

重启 Docker 的 Nginx

docker-compose up -d nginx 
  1. 在 hosts 文件中添加 (Windows 下对应文件路径是 C:\Windows\System32\drivers\etc\hosts
127.0.0.1 demo.test
  1. 在浏览器中访问 demo.test


    如图所示,则表示 php 环境搭建成功!
  2. 安装多项目。比如搭建 laravel 项目
    在 wwwroot 目录下执行 composer 命令 (需要提前在 Windows 环境中安装 composer)
    可以查看我写的这篇文章 Windows安装composer

composer create-project laravel/laravel blog --prefer-dist
搭建 laravel 项目 blog

目录结构如下:


项目都在 wwwroot 目录下
  1. 添加 nginx 配置文件追加 hosts 配置


    重新复制一份 default.conf 配置文件,并作相应的配置修改
  2. 重启 docker 中的 nginx

docker-compose up -d nginx
  1. 彩蛋
  • 进入Workspace 容器, 执行比如(Artisan, Composer, PHPUnit, Gulp, ...)等命令
docker-compose exec workspace bash
  • 列出正在运行中的容器
docker ps
  • 关闭所有正在运行的容器
docker-compose stop
  • 进入 mysql 容器
docker-compose exec mysql bash
  • 退出容器
exit
  • 参考文献:

laradock中文文档

laravel 学院<[ Laravel 5.5 文档 ] 快速入门 —— 使用 Laradock 搭建基于 Docker 的 PHP 开发环境>

laravel 学院<[ Laravel 从入门到精通 ] 在 Mac/Windows 系统中使用 Laradock 搭建基于 Docker 的 Laravel 开发环境>

你可能感兴趣的:(windows10 专业版 64位系统安装docker并使用 laradock 搭建 laravel 环境)