laravel环境包含nginx,mysql,php7.4,redis
一、安装好docker后pull镜像
1.nginx镜像
docker pull nginx:latest
单独启动容器
docker run --name nginx -p 80:80 -d nginx
2.php镜像
docker pull php:7.4-fpm
3.mysql镜像
docker pull mysql:5.7
4.redis镜像
docker pull redis
二、安装配置docker-compose
- 安装docker-compose
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
安装完成后输入 docker-compose -v 可能提示权限不够,就增加权限
chmod +x /usr/local/bin/docker-compose
输入 dcoker-compose -v 显示版本正常即可
- 编写docker-compose.yml 配置文件
我的镜像列表如下
#docker-compose.yml
#版本,配置文件使用第三套标准
version: "3"
#字段指定了在 Docker Compose 编排中要运行的服务。每个服务都有一个名称,并指定要使用的镜像和容器的配置选项
services:Nginx:#镜像名称image: nginx:latest#容器名称container_name: nginx#端口映射将右边容器端口80映射到左边宿主机端口80ports:- 80:80#目录挂载,将宿主机/home/www/laravelcrm映射到ngxin的/usr/share/nginx/html目录#可以直接使用 [主机:容器]格式,或者使用[主机:容器:ro]格式,后者对于容器来说,数据卷是只读的volumes:- /home/www:/var/www/html:ro- /docker/laravelcrm/nginx/conf:/etc/nginx/conf.d:ro- /docker/laravelcrm/nginx/log:/var/log/nginxPHP:image: php:7.4-fpmcontainer_name: phpports:- 9000:9000volumes:- /home/www:/var/www/html:rw- /docker/laravelcrm/php:/usr/local/etc/phpMYSQL:image: mysql:5.7container_name: mysqlports:- "3306:3306"volumes:- /docker/laravelcrm/mysql:/etc/mysql/conf.d- /docker/laravelcrm/mysql/logs:/logs- /docker/laravelcrm/mysql/data:/var/lib/mysqlenvironment:MYSQL_ROOT_PASSWORD: rootREDIS:image: redis:latestcontainer_name: redisports:- "6379:6379"volumes:- /docker/laravelcrm/redis/data:/data- /docker/laravelcrm/redis/redis.conf:/etc/redis/redis.conf
此处使用 docker-compose up -d 来启动服务,如果报错可能是某处配置有问题,例如nginx
可使用
docker run nginx
先启动一个nginx容器,然后使用
docker ps -a
来获取nginx容器id,根据容器id再使用
docker exec 9dc06 nginx -t
来查看ngxin使用的默认配置,然后去修改映射配置文件
server {listen 80;server_name localhost;location / {# 注意 这里写的是nginx容器中的目录root /var/www/html/laravelcrm/public;index index.html index.htm index.php;if ( !-e $request_filename ) {rewrite ^/(.*)? /index.php?/$1 last;break;}}location ~ \.php$ {#php是container_name容器名称:9000fastcgi_pass php:9000;fastcgi_index index.php;#此处必须改为root的配置目录fastcgi_param SCRIPT_FILENAME /var/www/html/laravelcrm/public$fastcgi_script_name;#fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}access_log /var/log/nginx/laravelcrm.log main;error_log /var/log/nginx/laravelcrm.error.log;}
使用 docker-compose up -d 启动,或者docker-compose down 停止服务,
注意,修改配置文件必须重启服务