Docker 下安装配置 lnmp 环境
前提:已经成功安装 Docker
创建 mysql 容器#
执行以下命令创建容器#
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=wqg951122 --name woann_mysql mysql:5.6
参数说明
- -d 让容器在后台运行
- -p 添加主机到容器的端口映射 (hostPort:containerPort)
- -e 设置环境变量,这里是设置 mysql 的 root 用户的初始密码 *
- –name 容器的名字,随便取,但是必须唯一
进入到容器 (其他容器进入方法都是一样的,替换容器名执行命令即可)#
docker exec -ti woann_mysql /bin/bash
参数说明
- -t 在容器里生产一个伪终端
- -i 对容器内的标准输入 (STDIN) 进行交互
安装 vim(每个创建的容器都要执行此步骤,后续忽略)#
刚创建的容器没有安装 vim,所以要手动安装,先执行
apt update
再执行
apt-get install vim
安装完毕即可
创建 php 容器#
执行以下命令创建容器#
docker run -d -v /home/wwwroot:/home/wwwroot -p 9000:9000 --link woann_mysql:mysql --name woann_phpfpm php:7.2-fpm
参数说明
- -d 让容器在后台运行
- -p 添加主机到容器的端口映射
- -v 添加目录映射,即主机上的
/home/wwwroot
和容器中/home/wwwroot
目录是同步的 - –name 容器的名字
- –link 与另外一个容器建立起联系,这样我们就可以在当前容器中去使用另一个容器里的服务。
这里如果不指定–link 参数其实也是可以得,因为容器本身也是有 ip 的且唯一,所以我们也可以直接利用 ip 去访问容器。添加 php 测试文件#
在
/home/wwwroot
目录下添加测试 php 文件index.php
内容:<?php phpinfo();
创建 nginx 容器#
执行以下命令创建容器#
docker run -d -p 80:80 -v /home/wwwroot:/home/wwwroot --link woann_phpfpm:phpfpm --name woann_nginx nginx
参数说明:
- -d 让容器在后台运行
- -p 添加主机到容器的端口映射
- -v 添加目录映射,这里最好 nginx 容器的根目录最好写成和 php 容器中根目录一样。但是不一点非要一模一样,如果不一样在配置 nginx 的时候需要注意
- –name 容器的名字
- –link 与另外一个容器建立起联系
进入到 nginx 容器修改配置文件#
- nginx 配置文件目录在
/etc/nginx/
目录下 - 主配置文件为
/etc/nginx/nginx.conf
- 引用配置文件为
/etc/nginx/conf.d/*.conf
- nginx 默认创建了一个引用配置文件 (/etc/nginx/conf.d/default.conf)
执行vim /etc/nginx/conf.d/default.conf
添加如下代码,让 nginx 接收到 php 请求时自动转发到 phpfpm 容器
location ~ \.php$ { root /home/wwwroot; fastcgi_pass phpfpm:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
测试结果#
查看刚才创建的所有容器#
docker ps
该命令查看所有正在运行的容器,如查看所有,在命令后加
-a
如下图所示
测试#
用浏览器访问 http://127.0.0.1/index.php
, 即可看到 phpinfo 的信息页面。至此 lnmp 搭建完毕。
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: