docker搭建lnmp

本文详细介绍了如何使用Docker来搭建LNMP环境,包括下载镜像、创建并启动MySQL、PHP-FPM以及Nginx容器。在启动MySQL时设置了root用户的初始密码,并通过目录映射保存数据。接着启动PHP-FPM,与MySQL容器建立链接,安装了pdo_mysql扩展。最后创建Nginx容器,配置文件以支持PHP处理。

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

下载所需镜像
docker pull mysql:5.7
docker pull php:7.2-fpm
docker pull nginx:1.12.2
创建并启动mysql
docker run -d -p 3307:3306 -v ~/mydocker/lnmp/mysqldata:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name docker_mysql mysql:5.7

参数说明
-d 让容器在后台运行
-p 添加主机(3307) 到容器的端口(3306) 映射
-e 设置环境变量,这里是设置mysql的root用户的初始密码,这个必须设置
–name 容器的名字(docker_mysql),随便取,但是必须唯一
-v 添加目录映射,防止mysql容器被删除后数据丢失

创建并启动php-fpm
docker run -d -v ~/mydocker/lnmp/html:/var/www/html -p 9000:9000 --link docker_mysql:mysql --name docker_phpfpm php:7.2-fpm

参数说明
-d 让容器在后台运行
-p 添加主机到容器的端口映射
-v 添加目录映射,即主机上的~/mydocker/lnmp/html和容器中/var/www/html目录是同步的
–name 容器的名字(docker_phpfpm)
–link 与另外一个容器建立起联系,这样我们就可以在当前容器中去使用另一个容器里的服务。与docker_mysql建立联系并取名为mysql

这里如果不指定–link参数其实也是可以得,因为容易本身也是有ip的且唯一,所以我们也可以直接利用ip去访问容器。

安装必要的扩展
进入容器:docker exec -it docker_phpfpm /bin/bash

php -m查看扩展模块

root@acc876910acf:/var/www/html# php -m
[PHP Modules]
Core
ctype
curl
date
dom
fileinfo
filter
ftp
hash
iconv
json
libxml
mbstring
mysqlnd
openssl
pcre
PDO
pdo_sqlite
Phar
posix
readline
Reflection
session
SimpleXML
sodium
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
zlib

[Zend Modules]

安装:docker-php-ext-install pdo_mysql
退出容器 exit
停止容器:docker stop docker_phpfpm
提交:docker commit <容器ID> <NAME/VERSION>
docker commit acc876910acf myphp:7.2-fpm
查看:docker images 镜像会多一个

创建并启动nginx
docker run -d -p 80:80 -v ~/mydocker/lnmp/html:/var/www/html -v /Users/wangwei/mydocker/lnmp/nginx/sites.conf:/etc/nginx/conf.d/sites.conf  --link docker_phpfpm:phpfpm --name docker_nginx nginx:1.12.2

参数说明
-d 让容器在后台运行
-p 添加主机到容器的端口映射
-v 添加目录映射,这里最好nginx容器的根目录最好写成和php容器中根目录一样。但是不一点非要一模一样,如果不一样在配置nginx的时候需要注意
–name 容器的名字
–link 与另外一个容器建立起联系

配置lnmp 修改Nginx 的配置文件,使他支持php

server {
    listen       80;
    server_name  localhost;
    root   /var/www/html;
    location / {
        index  index.html index.htm index.php;
    }
    location ~ \.php$ {
        fastcgi_pass   phpfpm:9000;  //phpfpm为关联的php-fpm容器的别名,这里也可以用ip,也可以用容器的唯一 ID
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值