文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Docker中部署NMP环境

2023-09-06 13:00

关注

在这里插入图片描述

文章目录

docker pull php:7.0.10-fpm-alpinedocker pull nginx:1.22.0docker pull mysql:5.7.39

说明:docker的数据持久化是数据不会随着容器的结束而结束,数据持久化分为具名挂载和匿名挂载,本次使用具名挂载,将数据存储在宿主机上并指定挂载宿主机挂载点。

mkdir /data/NMP/{MYSQL,PHP,NGINX,WEB} -p   // 创建NGINX、PHP、MYSQL、WEB目录mkdir /data/NMP/MYSQL/{conf,data}   // 创建MYSQL配置目录、数据存储目录mkdir /data/NMP/MYSQL/logs   // 创建MYSQL日志存放目录chmod 777 /data/NMP/MYSQL/logs/   // 赋予MYSQL日志目录权限mkdir /data/NMP/NGINX/{conf,logs}   // 创建NGINX配置目录、日志存放目录mkdir /data/NMP/PHP/conf   // 创建PHP配置文件存放目录

创建NGINX配置文件让其支持PHP:
说明:“172.66.68.101”是PHP服务器的IP地址(必须指定),“/var/www/html”是PHP服务器存放网页内容的地址,这里需要结合PHP容器内决定。

vim /data/NMP/NGINX/conf/docker.conf// 创建NGINX配置文件server {    listen 80;server_name localhost;    location / {        root /usr/share/nginx/html;        index index.php index.html;    }    location ~ \.php$ {        root  html;        fastcgi_pass 172.66.68.101:9000;        fastcgi_index index.php;        fastcgi_param SCRIPT_FILENAME /var/www/html/$fastcgi_script_name;        include fastcgi_params;    }}

创建MYSQL配置文件让其开启MYSQL日志:
如果无需记录MYSQL的日志文件,则可以忽略此步骤,忽略的同时在启动容器的时候就可以不用挂载MYSQL日志存放目录。

cat > /data/NMP/MYSQL/conf/docker.cnf << EOF[mysqld]log_error=/mysql/mysql.error.logEOF

自定义网络修复了Docker0网桥与容器之间无法用容器名互相ping通的问题,只能使用IP才能ping通,但是我们自定义的网络是可以用IP或容器名互相ping通的,它的好处是将不同的集群使用不同的网络,保证集群是安全和健康的!
创建一个名为“LNMP”的网络名称、采用“brige”网络模式、IP网段“172.66.68.0/24”、网关地址“172.66.68.1”

docker network create --driver bridge --subnet 172.66.68.0/24 --gateway 172.66.68.1 LNMP

命名为“NGINX_1”,IP地址“172.66.68.100”,映射端口“80”。

docker run -d --name=NGINX_1 -p80:80 --net=LNMP --ip=172.66.68.100 \-v /data/NMP/NGINX/conf/:/etc/nginx/conf.d \-v /data/NMP/NGINX/logs/:/var/log/nginx \-v /data/NMP/WEB/:/usr/share/nginx/html nginx:1.22.0

命名为“PHP_1”,IP地址“172.66.68.101”。

docker run -d --name=PHP_1 --net=LNMP --ip=172.66.68.101 \-v /data/NMP/WEB/:/var/www/html/ \-v /data/NMP/PHP/conf:/usr/local/etc/php/conf.d php:7.0.10-fpm-alpine

命名为“MYSQL_1”,IP地址“172.66.68.102”,映射端口“3306”。

docker run -d --name=MYSQL_1 -p3306:3306 --net=LNMP --ip=172.66.68.102 \-v /data/NMP/MYSQL/data/:/var/lib/mysql \-v /data/NMP/MYSQL/conf/:/etc/mysql/conf.d \-v /data/NMP/MYSQL/logs/:/mysql/ -e MYSQL_ROOT_PASSWORD=asdzxc mysql:5.7.39

创建测试PHP连接:

echo "" > /data/NMP/WEB/index.php

浏览器访问:http://172.66.66.66/index.php
在这里插入图片描述
创建测试连接数据库:

docker exec -it 30d4136b979e  /bin/sh// 进入PHP容器“30d4136b979e容器ID”sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/' /etc/apk/repositories// 修改本地源docker-php-ext-install mysqli // 安装php扩展支持连接MYSQLexit// 退出容器docker restart 30d4136b979e// 重启PHP容器“30d4136b979e容器ID”vim /data/NMP/PHP/html/sql.php// 创建数据库连接<?php$servername = "172.66.68.102";$username = "root";$password = "asdzxc";// 创建连接$conn = new mysqli($servername, $username, $password);// 检测连接if ($conn->connect_error) {    die("连接失败: " . $conn->connect_error);}echo "连接成功";?>

浏览器访问:http://172.66.66.66/sql.php
在这里插入图片描述

rm -rf /data/NMP/WEBdefine('DB_NAME', 'wordpress');define('DB_USER', 'user');define('DB_PASSWORD', '123456');define('DB_HOST', '172.66.68.102');# a进行插入,修改完成后按Esc,:wq保存退出

配置数据库:进入到MYSQL容器

docker exec -it c03f2e2221a2  /bin/bash// 进入MYSQL容器mysql -uroot -pcreate database wordpress;// 创建数据库create user 'user'@'%' identified by '123456';// 创建用户grant all privileges on wordpress.* to 'user'@'%';// 用户授权flush privileges;// 刷新权限

浏览器访问:http://172.66.66.66/wordpress
在这里插入图片描述
登录到项目中:
在这里插入图片描述
至此部署完成~希望此文档对您有所帮助,祝你工作顺利!!!

来源地址:https://blog.csdn.net/Du_Linux/article/details/126289338

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯