docker在win10家庭版下构建laravel开发环境

改改心情

操作系统:

win10 家庭版

安装docker:

官网下载的docker无法安装成功,提示操作系统版本问题~~~~
所以直接下载了阿里提供的docker安装包:
阿里镜像
社区版是-ce后缀的

阿里镜像加速

首先登录阿里云 查找容器镜像服务
image.png
win10找到C:\Users\用户\.docker\machine\machines\default底下有个config.json文件,在属性RegistryMirror添加加速器地址,docker虚拟机重启即可。

docker toolbox文件挂载机制

看了很多文章很多都是直接 -v /c/data:/data 直接把c盘下的data挂载的容器里。或许因为我用的是docker toolbox所以挂载的时候应该先在虚拟机上进行文件共享,共享后重启虚拟机
image.png

docker-machine restart default

进入虚拟机后台 docker-machine ssh default 可以看到
image.png
这个时候在进行 -v /workspace:/workspace 进行docker的挂载

自定义laravel开发镜像

基于ubuntu镜像安装

docker pull ubuntu

启动ubuntu容器-这个时候会用ubuntu镜像创建一个容器

docker run -itd --name test -p 8080:80 ubuntu

容器的使用

容器使用教程

进入ubuntu容器安装需要的内容

docker exec -it test /bin/bash
    apt-get update
    apt-get install nginx
    apt-get install php
    apt-get install php7.4-fpm php7.4-mysql php7.4-gd php7.4-mbstring
    apt-get install mysql-server
    apt-get install composer
    apt-get install net-tools
    apt-get install vim
    apt-get install node

启用nginx

service nginx start

访问docker启用IP的8080端口
image.png

创建测试用项目

image.png

配置nginx文件

server {
   listen 80;
   listen [::]:80;

   server_name example.com;

   root /workspace/test;
   index index.php index.html;
   
   location ~ \.php$ {
        root  /workspace/test;
        index index.php index.html;
        fastcgi_index index.php;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param  SCRIPT_FILENAME $document_root/$fastcgi_script_name;
        include /etc/nginx/fastcgi_params;
   }
   location / {
        try_files $uri $uri/ /index.php$is_args$query_string;
   }
}

重启nginx

service nginx restart

启用php-fpm

service php7.4-fpm start

找到/etc/php/7.4/fpm/pool.d/www.conf文件 打开php-fpm监听端口

listen = /run/php/php7.4-fpm.sock
修改为
listen = 127.0.0.1:9000

重启php7.4-fpm服务
image.png

配置mysql数据库

允许远程用户连接,查找/etc/mysql/mysql.conf.d/mysqld.cnf文件,注释掉以下内容:

bind-address = 127.0.0.1

进入用户界面修改root用户信息

use mysql;
update user set host='%' where user='root';
ALTER  USER  'root'@'%'  IDENTIFIED  BY  'password'  PASSWORD  EXPIRE  NEVER;
ALTER  USER  'root'@'%'  IDENTIFIED  WITH mysql_native_password BY  '123456';
flush privileges;

mysql服务重启

将配置好的容器单独保存为laravel镜像

docker commit -m="laravel开发环境" -a="作者" e218edb10161 laravel:v1

将配置好的容器导出

docker export 1e560fca3906 > laravel.tar

完整的启动laravel容器

docker run -itd --name laravel -p 8080:80 -p 3306:3306 -v /workspace:/workspace -v /workspace/docker-conf/nginx-conf:/etc/nginx/sites-enabled laravel:v1

workspace 是所有项目的目录
nginx-conf 是nginx的配置目录 里面有个default的配置文件,用于覆盖容器的nginx配置文件

将配置好的镜像导入

已制作好的镜像
链接:https://pan.baidu.com/s/1Qqxx...
提取码:u47k

docker import laravel.tar laravel:v1

启动容器

docker run -it --name laravel -p 80:80 -p 3306:3306 -v /workspace:/workspace -v /workspace/docker-conf/nginx-conf:/etc/nginx/sites-enabled laravel:v1 /bin/bash

一键启动脚本 启动laravel容器.bat

docker start laravel
docker exec -it laravel /bin/bash service php7.4-fpm start
docker exec -it laravel /bin/bash service nginx start
docker exec -it laravel /bin/bash service mysql start

解决php版本问题 (因为有的系统可能无法找到想要的php)

Debian解决方案

  1. 安装前升级系统:
sudo apt update
sudo apt upgrade
  1. 在Debian 10.7安装PHP 7.4:
apt -y install lsb-release apt-transport-https ca-certificates wget
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg

添加仓库:

echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
apt update
apt search php7.4

默认php命令版本切换

update-alternatives --config php

建议改用docker-desktop

我现在使用的就是这个这个不用安装配置vbox,按步骤安装,需要额外安装linux核心即可,其他操作相同。

阅读 2.1k

温故知新,用时再找

401 声望
5 粉丝
0 条评论

温故知新,用时再找

401 声望
5 粉丝
文章目录
宣传栏