windows10 专业版 64位系统安装docker
安装说明
-
windows 10 系统需要开启 Hyper-V
开启方式如下图:
-
打开控制面板-程序-程序和功能-启用或关闭 windows 功能
-
找到有关 Hyper-V 的项,全部选中
-
如果发现关于 Hyper-V 的选项无法开启,那么就需要进入 bios 开启虚拟化。开启方法见如下链接:
查看 Hyper-V 固件中启用的虚拟化是否开启的步骤:Win + R 输入 “msinfo32 ” 即可看到“系统信息”窗口。
进入 bios 开启固件虚拟化的方法步骤:进入 bios 设置界面,切换到 Advanced 标签,选中 CPU Configuration 设置 Intel Virtualization Technology 为 Enabled。(不同的主板可能会有不同的设置方法,主要是将 Intel Virtualization Technology 设置为 Enabled 即可)
- 再次打开【启用或关闭 windows 功能界面】开启 Hyper-V 所有选项。
-
下载 Docker Desktop for Windows desktop app
- 下载 Docker Desktop for Windows app
- 下载完成之后,直接双击安装
-
开启 docker 直接可以通过小娜助手搜 docker 关键词,然后启动 Docker Desktop,不管怎样,主要是找到 Docker Desktop 应用,打开就好。
-
查看 docker 开启状态。
初次安装时,可能会提示你登录 docker 的账号,如果没有 docker 账号的话,可以去 docker 官网注册一下。
- 测试安装。 任意位置打开 Windows PowerShell
// 查看 docker 版本docker --version docker-compose --versiondocker run hello-world
-
使用 laradock 搭建项目
- 将 laradock 项目代码克隆到本地:
git clone https://github.com/Laradock/laradock.git
- 进入
laradock
目录将env-example
复制一份并命名为.env
cp env-example .env
- 运行容器 (此时在 laradock 目录下)
docker-compose up -d nginx mysql redis workspace
如果指定端口已经被占用,运行上述命令会报错,关闭相应的服务再重新运行上述命令即可。
注:安装过程中,由于某些资源需要翻墙才能下载,建议安装并启用 VPN 后再执行上述命令。如果出现需要认证的下载资源无权下载,可以通过 Docker ID/密码 登录到 Docker 应用(点击状态栏 Docker 应用小图标就能看到登录菜单),注意这里必须用 Docker ID,不能用注册邮箱。在 Windows 下如果出现目录挂载失败,可以尝试在 Docker 设置中重新设置 Shared Drives。
- 打开项目的
.env
文件并添加如下配置:
DB_HOST=mysqlREDIS_HOST=redisQUEUE_HOST=beanstalkd
- 在和 laradock 同级目录下新建 wwwroot 目录,用于存放代码
新建 demo 文件夹,并写入 phpinfo(); 到 index.php 作为测试。
- 此时需要再次在
.env
文件中修改APPLICATION
配置项(新版本的 laradock 对应的配置项是APP_CODE_PATH_HOST
)
APPLICATION=../wwwroot/
这样就相当于为 wwwroot 与 Docker 的 /var/www 目录建立了软连接,然后我们修改 nginx 的配置文件,建立映射关系。
// 复制一份配置文件 demo.confcp ./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
- 在 hosts 文件中添加 (Windows 下对应文件路径是
C:\Windows\System32\drivers\etc\hosts
)
127.0.0.1 demo.test
-
在浏览器中访问 demo.test
-
安装多项目。比如搭建 laravel 项目 在 wwwroot 目录下执行 composer 命令 (需要提前在 Windows 环境中安装 composer) 可以查看我写的这篇文章
composer create-project laravel/laravel blog --prefer-dist
目录结构如下:
-
添加 nginx 配置文件追加 hosts 配置
-
重启 docker 中的 nginx
docker-compose up -d nginx
- 彩蛋
- 进入Workspace 容器, 执行比如(Artisan, Composer, PHPUnit, Gulp, ...)等命令
docker-compose exec workspace bash
- 列出正在运行中的容器
docker ps
- 关闭所有正在运行的容器
docker-compose stop
- 进入 mysql 容器
docker-compose exec mysql bash
- 退出容器
exit
-
参考文献: