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的连接 

阅读剩余部分

相关阅读 >>

php daddslashes()和 saddslashes()有哪些区别分析

php5.2下preg_replace函数的问题

asp.net discuznt登录,退出的代码

用cookies实现闪电登录论坛方法

如何使windows7系统中将ie9轻松降级到ie8

nginx服务器下使用rewrite重写url以实现伪静态的示例

web目录下不应该存在多余的程序(安全考虑)

dedecms调用Discuz论坛信息按照id分类调用附详细说明

常用网页编辑器漏洞手册(全面版)fckeditor,ewebeditor

巧用discuz!7.0后台防灌水功能

更多相关阅读请进入《Discuz论坛》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...