docker搭建lnmp环境

本文详细介绍了如何在Windows环境下,通过Docker创建并配置MySQL、PHP-FPM和Nginx的自定义网络环境,包括网络设置、容器拉取与运行、权限管理和配置调整,以实现完整的LNMP栈搭建。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里是在windows下进行,原理一样

一.创建自定义网络环境

创建自定义网络环境,因为默认的两个容器之间是无法解析的

docker network create lnmp

docker network ls

默认有三个环境,我们创建了一个

二.创建mysql容器

docker pull mysql

运行mysql容器

docker run -d -p 3326:3306 --restart=always --name lnmp-mysql --net lnmp -v D:\Docker\project\lnmp\mysql\conf:/etc/mysql/conf.d -v D:\Docker\project\lnmp\mysql\data:/var/liv/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql

这里通过navicat测试连接成功

使用命令进行与mysql交互

docker exec -it lnmp-mysql /bin/bash

修改my.cnf配置文件

[mysqld]
节点添加下面两行
skip-host-cache
skip-name-resolve

参数解释如下:
skip-host-cache:禁用主机名缓存
skip-name-resolve:禁用主机名解析

防止更换ip后无法识别主机

重启mysql。       

登录mysql

更改root密码加密方式,%表示任意地点登录; 其中 xxx 替换成你要设置的密码,设置密码为永不过期

ALTER USER 'root'@'%' IDENTIFIED BY 'xxx' PASSWORD EXPIRE NEVER;

修改密码并指定加密规则为 mysql_native_password

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'xxx';

刷新权限

flush privileges;

添加新用户test,修改用户加密方式,为用户设置权限

alter user 'test'@'%' identified by 'xxx' password expire never;

alter user 'test'@'%' identified with mysql_native_password by 'xxx';

grant all on *.* to 'test'@'%' ;    #赋给用户所有权限

flush privileges;

这里导入了项目的数据库

使用exit;退出mysql和交互终端

三.创建php-fpm容器(PHP7.4)

docker pull bitnami/php-fpm

运行容器,并挂在目录

docker run -d --name lnmp-php7-fpm -v D:\Docker\project\lnmp\nginx\www:/www bitnami/php-fpm

四.创建nginx容器

docker pull nginx

运行容器,并挂载目录,首先要创建D:\Docker\project\lnmp\nginx\conf\nginx.conf文件,不然windows会认为是目录

docker run -d -p 8082:80 --name lnmp-nginx -v D:\Docker\project\lnmp\nginx\www:/usr/share/nginx/html -v D:\Docker\project\lnmp\nginx\conf\nginx.conf:/etc/nginx/nginx.conf -v D:\Docker\project\lnmp\nginx\conf\conf.d:/etc/nginx/conf.d -v D:\Docker\project\lnmp\nginx\logs:/var/log/nginx --link lnmp-php7-fpm:php nginx

在D:\Docker\project\lnmp\nginx\conf\conf.d增加文件host.conf,并配置如下

server {
    listen 80;

    server_name localhost;

    location / {
        root /usr/share/nginx/html;

        index index.html index.htm index.php;

    }

    error_page 500 502 503 504 /50x.html;

    location = /50x.html {
        root /usr/share/nginx/html;

    }

    location ~ \.php$ {
        fastcgi_pass php:9000;

        fastcgi_index index.php;

        fastcgi_param SCRIPT_FILENAME /www/$fastcgi_script_name;

        include fastcgi_params;

    }

}

fastcgi_pass这里的php对应的是之前的lnmp-php7-fpm,端口9000是默认进程端口

重启nginx容器

docker restart lnmp-nginx

在D:\Docker\project\lnmp\nginx\www增加index.php

<?php
echo phpinfo();

?>

浏览器运行127.0.0.1:8082如下

至此,lnmp环境已经搭建完毕

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

end for time

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值