docker服务部署网络要求(docker部署LNMP架构的方法)
类别:服务器 浏览量:2674
时间:2021-10-23 10:55:51 docker服务部署网络要求
docker部署LNMP架构的方法环境要求:
IP
hostname
192.168.1.1
node1
项目规划:
容器网段:172.16.10.0/24
NGINX:172.16.10.10
MySQL:172.16.10.20
PHP:172.16.10.20
网站根目录:/www
nginx配置文件:/conf
mysql持久化目录:/var/lib/mysql
提前准备服务配置文件:
nginx
<strong>docker run -itd --name test nginx #运行test容器 docker cp test:/etc/nginx /conf #copy主配置文件 ls /conf/ conf.d koi-win nginx.conf win-utf fastcgi_params mime.types scgi_params koi-utf modules uwsgi_params docker cp test:/usr/share/nginx/html /www #copy网站目录 ls /www/ 50x.html index.html </strong>
mysql
<strong>[root@node1 ~]# docker rm -f test test [root@node1 ~]# docker run -itd --name test -e MYSQL_ROOT_PASSWORD=pwd123 mysql:5.7 6b8d73ecd541d454f121302963a85d53131286d3118a968525a24ad2315b047b [root@node1 ~]# docker exec -it test sh # mysql -uroot -ppwd123 -h127.0.0.1 .......... mysql> create database test; Query OK, 1 row affected (0.00 sec) mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | | test | +--------------------+ 5 rows in set (0.00 sec) mysql> exit Bye # exit [root@node1 ~]# docker cp test:/var/lib/mysql /var/lib/mysql </strong>
1、配置lnmp虚拟网卡,网段172.16.10.0/24,网关172.16.10.254
<strong>docker network create -d bridge --subnet 172.16.10.0/24 --gateway 172.16.10.254 lnmp </strong>
2、创建nginx容器测试访问
<strong>#创建mysql挂载数据目录、开发端口、指定IP [root@node1 ~]# docker run -itd --name mysql -p 3306:3306 -v /var/lib/mysql:/var/lib/mysql --network lnmp --ip 172.16.10.20 mysql:5.7 448227483a9c3141c2155d2c7b027aec263bfcfe4ebc49371b6817c17565ff81 #查看运行状态 [root@node1 ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 448227483a9c mysql:5.7 "docker-entrypoint.s…" 10 seconds ago Up 9 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp mysql 4d1e99a06972 nginx:latest "/docker-entrypoint.…" 3 minutes ago Up 3 minutes 0.0.0.0:80->80/tcp nginx 6b8d73ecd541 mysql:5.7 "docker-entrypoint.s…" 9 minutes ago Up 9 minutes 3306/tcp, 33060/tcp test #测试登录 [root@node1 ~]# yum -y install mariadb [root@node1 ~]# mysql -uroot -ppwd123 -h127.0.0.1 Welcome to the MariaDB monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.7.33 MySQL Community Server (GPL) Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MySQL [(none)]> Bye </strong>
3、运行MySQL容器
<strong>[root@node1 www]# docker run -itd --name php-fpm -p 9000:9000 -v /www:/usr/share/nginx/html --network lnmp --ip 172.16.10.30 php:7.2-fpm ae09213d7c8c84299b1522ca474fccf7f26e27973cd02563891c37d51799b766 [root@node1 www]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ae09213d7c8c php:7.2-fpm "docker-php-entrypoi…" 7 seconds ago Up 6 seconds 0.0.0.0:9000->9000/tcp php-fpm</strong>
4、创建php-fpm容器
<strong>[root@node1 ~]# vim /conf/conf.d/default.conf </strong>
5、nginx和PHP的连接
5.1、添加nginx静态的测试界面
<strong>[root@node1 ~]# echo Hello LNMP! > /www/index.html [root@node1 ~]# cat /www/index.html Hello LNMP! [root@node1 ~]# curl 192.168.1.1 Hello LNMP! </strong>
5.2、添加PHP测试页面
<strong>[root@node1 ~]# cd /www [root@node1 www]# vim test.php [root@node1 www]# cat test.php <?php phpinfo(); ?> [root@node1 www]# docker restart nginx nginx [root@node1 www]# pwd /www [root@node1 www]# ls 50x.html index.html test.php </strong>
能够访问到以上两个界面,说明nginx和php的连接,没有问题,接下来是 php和mysql的连接。在这里我们使用一个phpMyAdmin的数据库管理工 具。
6、测试PHP容器与Mysql容器的协调性、工具phpMyadmin
[root@node1 www]# pwd /www [root@node1 www]# unzip phpMyAdmin-4.9.0.1-all-languages.zip [root@node1 www]# mv phpMyAdmin-4.9.0.1-all-languages phpMyAdmin [root@node1 www]# rm -rf phpMyAdmin
6.1、更新nginx配置文件
[root@node1 www]# cd /conf/conf.d/ [root@node1 conf.d]# vim default.conf
内容如下:
location /phpmyadmin { root /usr/share/nginx/html; index index.php index.html index.htm; } location ~ /phpmyadmin/(?<after_ali>(.*)\.(php|php5)?$) { root /usr/share/nginx/html; fastcgi_pass 172.16.10.30:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
测试访问:
其实这主要是php镜像不支持连接mysql,我们要重新写一个。
7、解决php不关联mysql
[root@node1 /]# cd /file/ [root@node1 file]# ls Dockerfile [root@node1 file]# cat Dockerfile FROM php:7.2-fpm RUN apt-get update && apt-get install -y \ libfreetype6-dev \ li.jpg" alt="docker服务部署网络要求(docker部署LNMP架构的方法)" border="0" />
#删除php容器 [root@node1 /]# docker rm php-fpm -f php-fpm #运行phpmysql容器 [root@node1 /]# docker run -itd --name phpfpm -p 9000:9000 -v /www:/usr/share/nginx/html --network lnmp --ip 172.16.10.30 phpmysql:latest c4e943880fd51f947cba64ba0006abd26a923439a3e39a0350ca2561b42b8026 [root@node1 /]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c4e943880fd5 phpmysql:latest "docker-php-entrypoi…" 14 seconds ago Up 13 seconds 0.0.0.0:9000->9000/tcp phpfpm
7.1、phpmysql配置指向mysql地址
[root@node1 www]# cd /www/phpmyadmin/ [root@node1 phpmyadmin]# mv config.sample.inc.php config.inc.php [root@node1 phpmyadmin]# vim config.inc.php [root@node1 phpmyadmin]# docker restart phpfpm phpfpm
8、访问测试
9、趁热打铁,在发布一个dz论坛
dz论坛链接地址:http://down.chinaz.com/soft/41403.htm
#上传 [root@node1 /]# ls bin Discuz_X3.4_SC_UTF8_20210119.zip #移动到/www网页目录下 mv upload/ /www/dz chmod 777 /www/dz<br>#保证数据库有dz库<br>#授权一个dz库的管理员<br>#注意安装是IP为数据库的IP不要写错<br>
到此这篇关于docker部署LNMP架构的方法的文章就介绍到这了,更多相关docker部署LNMP架构内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
您可能感兴趣
- 无法访问docker容器内的端口(docker容器中切换用户,提示权限不足的解决)
- net coredocker基础镜像(Docker 部署net5程序实现跨平台功能)
- centos上docker的部署(CentOS8下的Docker使用详解)
- docker怎么装mongodb(Docker 搭建集群MongoDB的实现步骤)
- docker显示出错应用图标怎么处理(docker 命令报异常permission denied的解决方案)
- docker部署mysql并且自动启动(Docker 部署 Mysql8.0的方法示例)
- docker容器设置网站(docker容器中布置静态网站的实现)
- docker清理占用空间(docker清理大杀器/docker的overlay文件占用磁盘太大的解决)
- centos中docker安装部署(三分钟完成 ubuntu16.04初始化,Java,maven,docker环境的部署问题)
- docker node 分阶段构建(Docker安装、创建镜像、加载并运行NodeJS程序的详细过程)
- springcloud部署docker(Spring Cloud中使用jib进行docker部署的步骤详解)
- dockerfile自定义镜像图解(Docker images导出和导入操作)
- Docker 部署单机版 Pulsar 和集群架构 Redis(开发神器)的方法(Docker 部署单机版 Pulsar 和集群架构 Redis开发神器的方法)
- docker查找redis配置文件(解决docker重启redis,mysql数据丢失的问题)
- harbor 1.8安装部署(docker5 全功能harbor仓库搭建过程)
- docker快速打包部署脚本(使用脚本一键打包并上传docker镜像的实现代码)
- 三分71 生死战爆发 篮网旧将丁威迪今天成奇兵,助队赢球(三分71生死战爆发)
- 《红 雄安》系列广播剧第一集 水上奇兵雁翎队(雄安系列广播剧第一集)
- 小说 小伙穿越成刘备,用现代知识指挥作战,众谋士都看呆了(小伙穿越成刘备)
- 解析葡萄牙6-1瑞士 进攻多点开花,贡萨洛-拉莫斯一战成名(解析葡萄牙6-1瑞士)
- 这支 奇兵队 腕大 有范儿还各怀绝技,毒贩杀人犯见了都要仓皇而逃(这支奇兵队腕大)
- 雄藩崛起 奇兵队与幕末长州藩军事改革(雄藩崛起奇兵队与幕末长州藩军事改革)
热门推荐
- phpstudy默认不支持64位php的解决方法(phpstudy默认不支持64位php的解决方法)
- php运用redis实现抢购实例(PHP+redis实现微博的拉模型案例详解)
- sqlserver安装使用教程(SQL Server 2019下载与安装教程自定义安装)
- 织梦dede后台更新文章(织梦Dedecms5.7整站调用购物车订单数量简单解决办法)
- docker怎么增加端口(docker 添加端口及获取dockerfile的方法)
- js中encodeURIComponent与C#中HttpUtility.UrlEncode
- Web.config 图形化编辑器:ASPhere
- sql server 视图操作(Sql Server 视图数据的增删改查教程)
- dedecms标签怎么用(dedecms 添加字段后软件列表页无法调用软件大小问题的解决方法)
- laravel授权怎么用(laravel 使用auth编写登录的方法)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9