参考如下:
Docker Desktop 安装和使用 (Windows)_docker windows 安装_咖喱出品的博客-CSDN博客
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
备注:
通过 PowerShell 或 CMD 查看端口对应的 PID
netstat -aon | findstr :3306
去资源管理器(Ctrl + Alt + Delete)关闭对应PID的服务进程
注:如果你觉得每次启动的时候都要去停一些进程很麻烦,你也可以修改本地的端口号来避免端口号冲突,以 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 文件找到原有的链接,并替换成国内镜像,如下图:
此时我们再重新运行容器,即可下载成功
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,比较稳定
项目创建成功
项目目录层级如下
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 界面的按钮关闭和重启
7. 在浏览器中通过 http://mydemo 访问这个应用,如下页面即运行成功
8. 通过 phpmyadmin 配置数据库,浏览器网址输入 http://mydemo:8081 (端口号可以去 laradock 的 .env 文件里查找 PAM_PORT 对应的值)
备注:
如果想使用 phpmyadmin,需要提前创建容器和启动,如下命令
docker-compose up -d phpmyadmin
登录服务器名字,用户名字,密码的填写分别对应的 laradock 目录下 .env 文件里的如下配置
DB_HOST=mysql
DB_USERNAME=root
DB_PASSWORD=root
进入容器: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