Win10 环境下配置 Docker + Laradock + Laravel

Docker Desktop 的安装和配置

参考如下:

Docker Desktop 安装和使用 (Windows)_docker windows 安装_咖喱出品的博客-CSDN博客

Laradock 的安装和配置

1. 将 Laradock 项目代码克隆到本地   

git clone https://github.com/Laradock/laradock.git

2. 进入 Laradock 目录,复制 .env.example 文件并重命名为 .env(可通过 PowerShell,使用命令执行)

cp .env.example .env

3. 然后在 .env 中修改镜像源为国内镜像,避免镜像构建过程中出现网络超时问题

# If you need to change the sources (i.e. to China), set CHANGE_SOURCE to true
CHANGE_SOURCE=true

# Set CHANGE_SOURCE and UBUNTU_SOURCE option if you want to change the Ubuntu system sources.list file.
UBUNTU_SOURCE=aliyun

# 为 npm,composer 加速
WORKSPACE_COMPOSER_REPO_PACKAGIST=https://mirrors.aliyun.com/composer/

WORKSPACE_NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node

WORKSPACE_INSTALL_NODE=true

WORKSPACE_NODE_VERSION=node

WORKSPACE_NPM_REGISTRY=https://registry.npm.taobao.org/

4. 通过 PowerShell 或 CMD 构建镜像 & 启动容器

docker-compose up -d nginx mysql

# 如需要其他容器的使用,可以再次运行命令(非必需),例如:
docker-compose up -d redis beanstalkd phpmyadmin

  备注:

  • 如果构建过程长时间处于 building 状态并无进度增长,关闭重新运行上面的命令
  • 如果重新运行上面的命令报错,删除 C:\Users\Administrator\.docker 文件夹并重新运行命令
  • 如果指定端口已经被占用,如下图

 通过 PowerShell 或 CMD 查看端口对应的 PID

netstat -aon | findstr :3306

 Win10 环境下配置 Docker + Laradock + Laravel_第1张图片

 去资源管理器(Ctrl + Alt + Delete)关闭对应PID的服务进程

Win10 环境下配置 Docker + Laradock + Laravel_第2张图片

 Win10 环境下配置 Docker + Laradock + Laravel_第3张图片

注:如果你觉得每次启动的时候都要去停一些进程很麻烦,你也可以修改本地的端口号来避免端口号冲突,以 mysql 的端口 3306为例,如果3306总是被占用,你可以去 laradock 根目录下找到 docker-compose.yml 文件,在文件里修改如下:

将

ports:
  - "${MYSQL_PORT}:3306"

修改为

ports:
  - "3307:3306"


3307为你本地的不会被占用的端口号,
文件修改后保存,并通过命令重新运行容器
docker-compose up -d nginx mysql

如果构建镜像的过程中出现长时间卡顿无进度,或者报错,如下:

可以看到下面这个链接下载不下来,在浏览器打开这个链接,如果依旧打不开,那就是网络原因

https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.2/install.sh

这时我们需要找一个国内镜像来替代它,如下:

https://gitee.com/mirrors/nvm/raw/v0.39.2/install.sh

然后我们到 laradock\workspace\Dockerfile 文件找到原有的链接,并替换成国内镜像,如下图:

Win10 环境下配置 Docker + Laradock + Laravel_第4张图片

此时我们再重新运行容器,即可下载成功

Laravel 项目的创建和配置

1. 在 laradock 目录下通过 PowerShell 或 CMD 运行命令进入 workspace 容器 

docker-compose exec --user=laradock workspace bash

注:如果运行提示如下报错信息,需要重新运行 docker-compose up -d nginx mysql 来启动容器,再运行进入容器的命令

2. 通过 PowerShell 进入容器后,运行命令来创建新的 laravel 项目,mydemo 为自定义的项目名称

指定 laravel 项目的版本
composer create-project --prefer-dist laravel/laravel:^8.0 mydemo

下载 laravel 项目的最新版本
composer create-project --prefer-dist laravel/laravel mydemo

目前建议使用版本8,比较稳定

项目创建成功

Win10 环境下配置 Docker + Laradock + Laravel_第5张图片

 项目目录层级如下

Win10 环境下配置 Docker + Laradock + Laravel_第6张图片

3. 打开 laravel 项目目录下的 .env 文件并修改成如下配置:

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=default
DB_USERNAME=root
DB_PASSWORD=root

4. 在 laradock\nginx\sites 打开 default.conf 文件,并作如下修改

5. 在 C:\Windows\System32\drivers\etc\host 文件里添加

127.0.0.1      mydemo

6.在 laradock 目录下通过命令重启容器

docker-compose restart nginx

也可通过 docker 界面的按钮关闭和重启

Win10 环境下配置 Docker + Laradock + Laravel_第7张图片

7. 在浏览器中通过 http://mydemo 访问这个应用,如下页面即运行成功

Win10 环境下配置 Docker + Laradock + Laravel_第8张图片

8. 通过 phpmyadmin 配置数据库,浏览器网址输入 http://mydemo:8081 (端口号可以去 laradock 的 .env 文件里查找 PAM_PORT 对应的值)

Win10 环境下配置 Docker + Laradock + Laravel_第9张图片

备注:

如果想使用 phpmyadmin,需要提前创建容器和启动,如下命令

docker-compose up -d phpmyadmin

 登录服务器名字,用户名字,密码的填写分别对应的 laradock 目录下 .env 文件里的如下配置

DB_HOST=mysql
DB_USERNAME=root
DB_PASSWORD=root

Docker 常用命令

进入容器:docker-compose exec{容器名}bash 默认是使用 root 用户进入,议不要采用root进入,因为composer不推荐

用 laradock 用户进入容器:docker-compose exec --user=laradock workspace bash

退出命令是 : exit。

进入 mysql 容器: docker-compose exec mysql bash

在 mysql 容器 bash 中,进入mysql 命令行: mysql -uroot -proot

进入 workspace 容器:docker-compose exec workspace bash ,这是 laradock 的 docker 的工作空间

查看容器启动状态:docker-compose ps

关闭所有容器:docker-compose stop

启动所有容器:docker-compose up

重启所有容器:docker-compose restart

关闭指定容器:docker stop CONTAINER ID或者NAMES

删除所有容器:docker-compose down

重新启动容器:docker start CONTAINER ID或者NAMES

重启指定容器:docker-compose restart nginx mysql

杀死所有正在运行的容器:docker kill $(docker ps -a -q)

删除所有已经停止的容器:docker rm $(docker ps -a -q)

查看本地镜像:docker images

查看本地容器:docker ps

创建镜像:docker build -t name:tag Dockerfile路径

进入容器:docker exec-it IMAGE ID或者NAMES /bin/bash

移除本地容器:docker rm CONTAINER ID或者NAMES

查看openssl版本号:openssl version

查看 nginx 的版本及编译参数: nginx -V

你可能感兴趣的:(Laravel,框架入门,docker,laravel)