Docker 部署Nginx+Php+Mysql
本文利用自定义网络方式连接,而非使用–link指向host地址方式
# 安装php7-fpm镜像
docker pull php:7-fpm
# 安装Nginx最新版
docker pull nginx
# 安装Mysql 5.7
docker pull mysql:5.7
# 查看已安装镜像
[root@iZwzZ ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 08b152afcfae 2 weeks ago 133MB
mysql 5.7 8cf625070931 2 weeks ago 448MB
php 7.2 9f290ac43498 7 months ago 398M
# 创建自定义网络 lnmp
[root@iZwz ~]#docker network create lnmp --subnet 172.37.0.0/16 --gateway 172.0.0.1
e70f8ee037147b6d96a864dd8902de1622b3696a838873e1abd1263d0feea589
# 查看网络列表 自定义网络lnmp在其中
[root@iZwz ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
e9e08741ccb4 bridge bridge local
6c37b27bd514 host host local
4c1532fdf136 lnmp bridge local
9c3112e80c5c none null local
# 运行php
[root@iZwz conf.d]# docker run --name php-fpm -v /home/nginx/www:/var/www/html --net lnmp -d -p 9000:9000 php:7-fpm
# 运行nginx
[root@iZwz conf.d]# docker run --name nginx -p 8080:80 -d -v /home/nginx/www:/usr/share/nginx/html -v /home/nginx/conf/conf.d:/etc/nginx/conf.d --net lnmp nginx
# 在挂载出来的目录 home/nginx/conf/conf.d 新建一个配置文件 test.conf
[root@iZwz conf.d]# vim test.conf
# 内容如下
[root@iZwz conf.d]# cat test.conf
server {
listen 80;
server_name localhost;
#此处填写nginx上的代码路径
root /usr/share/nginx/html;
index index.html index.htm index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
error_page 404 /index.php;
location ~ \.php$ {
# 此处填写php-fpm代码路径
root /var/www/html;
fastcgi_pass php-fpm:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
# 在挂载目录/home/nginx/www下创建index.php文件
[root@iZwz www]# vim index.php
# 内容如下
[root@iZwz www]# cat index.php
<?php
echo phpinfo();
?>
# 验证 打开ip:8080/index.php
# 安装 myql5.7
docker pull mysql:5.7
# 运行mysql5.7 并挂载相关目录
docker run -d --name mysql5.7 -p 3306:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
# 参数说明
-d # 后台运行
-v # 挂载目录 格式: 主机目录:容器目录
-p # 暴露端口 外网端口:容器端口
-e # env 即配置mysql初始化参数
# mysql连接测试 使用navicat 连接测试
结果图: