Docker安装LNMP环境的详细过程(可部署TP项目)
时间:2025-12-22 18:30:04|栏目:其它服务器|点击: 次
目录
- Docker安装LNMP环境
- 1、安装Docker
- 2、 安装nginx
- 3、 安装PHP
- 4、 查看nginx运行路径
- 5、 创建并运行php容器
- 6、 进入php容器,创建index2.php测试文件
- 7、 获取到phpfpm 这个容器的ip
- 8、配置nginx 以便支持php文件访问
- 9、 拉取Mysql镜像
- 10、 服务器文件放入容器中
Docker安装LNMP环境
1、安装Docker
yum install docker # 启动并加入开机启动 sudo systemctl start docker sudo systemctl enable docker
2、 安装nginx
# 拉取管方镜像 docker pull nginx # 创建并运行容器,映射端口为80 docker run --name nginx -p 80:80 -d nginx # 访问IP,nginx能够正常运行
3、 安装PHP
# 拉取管方镜像,这里拉取的是php7,根据自己所需拉取 docker pull phpdockerio/php7-fpm
4、 查看nginx运行路径
# 进入nginx容器
docker exec -it nginx bash
# 查看nginx配置文件
cat /etc/nginx/conf.d/default.conf -n
# 找到location / {
# root /usr/share/nginx/html;#这是nginx默认运行路径
# index index.html index.html;
# }
5、 创建并运行php容器
docker run --name phpfpm -d 9000:9000 -v /var/www/html:/usr/share/nginx/html -d phpdockerio/php7-fpm
6、 进入php容器,创建index2.php测试文件
# 进入php容器 docker exec -it phpfpm bash # 进入运行目录 cd /usr/share/nginx/html # vim 创建index2.php # 因为docker没有安装vim,此时运行 apt-get update apt-get install vim cat << EOF > /root/.vimrc :set encoding=utf-8 :set fileencodings=ucs-bom,utf-8,cp936 :set fileencoding=gb2312 :set termencoding=utf-8 EOF # 创建index2.php vim index2.php # esc :wq 保存退出
7、 获取到phpfpm 这个容器的ip
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' phpfpm
# 172.17.0.3
8、配置nginx 以便支持php文件访问
docker exec -it nginx bash
# 进入nginx配置目录
cd /etc/nginx/conf.d
# 安装vim
apt-get update
apt-get install vim
# 编辑default.conf配置文件
vim default.conf
# 在default.conf中加入
location / {
root /usr/share/nginx/html/tp5.1/public;#不是tp的话去掉/tp5.1/public
index index.html index.htm index.php;
if (!-e $request_filename){
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}
location ~ \.php$ {
root /usr/share/nginx/html/tp5.1/public;#不是tp的话去掉/tp5.1/public
fastcgi_pass 172.17.0.3:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
include fastcgi_params;
}
# 保存退出,重启nginx
docker restart nginx
# 访问ip/index2.php,成功
9、 拉取Mysql镜像
docker pull mysql # 创建并运行mysql容器 docker run --name mysql -p 3306:3306 -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql #这是使用navicat连接会报错 docker exec -it mysql /bin/bash mysql -uroot -p #授权 GRANT ALL ON *.* TO 'root'@'%'; #刷新权限 flush privileges; #更新加密规则 ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #更新root密码 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; #刷新权限 flush privileges;
10、 服务器文件放入容器中
docker ps #查看容器id docker cp linux文件 容器id:容器路径
#linux中查找php.ini php -i | grep 'php.ini' #docker 因配置文件出错无法进入容器内解决办法 #将容器配置文件复制到服务器上 1.docker cp mynginx:/etc/nginx/conf.d/default.conf /users/nginx/default.conf #修改后再写回容器中 2.docker cp /users/nginx/default.conf mynginx:/etc/nginx/conf.d/default.conf
您可能感兴趣的文章
- 12-22nginx代理实现静态资源访问的示例代码
- 12-22Docker 存储管理的几种方式
- 12-22nginx静态资源的服务器配置方法
- 12-22Docker Compose部署微服务项目上线功能
- 12-22GPU服务器的多用户配置方法
- 12-22docker-compose搭建etcd集群的实现(三节点)
- 12-22docker中mysql开启日志的实现步骤
- 12-22Linux下docker安装mysql8并配置远程连接
- 12-22docker部署mysql8并设置可远程连接
- 12-22阿里云oss对象存储使用详细步骤


阅读排行
推荐教程
- 12-11docker存储目录迁移示例教程
- 12-10docker start启动容器后仍然exit状态的解决
- 12-10Linux下如何安装Logstash
- 12-19Zabbix SAML SSO 登录绕过漏洞的操作流程
- 12-15Docker-Compose搭建Spark集群的实现方法
- 12-14Docker Desktop无法正常启动解决(failed to start...)
- 12-14k8s 与docker空间使用分析与清理方法
- 12-13k8s编排之Deployment知识点详解
- 12-13Nginx IP封禁及自动封禁IP的实现
- 12-13Nginx代理Partainer如何使用





