概述
最终达成的容器部署结构和原理如下图:
一、获取nginx、php官方镜像
docker pull nginx //拉取nginx官方镜像
docker pull php:7.4-fpm //拉取php官方镜像
需要获取其他可用的php
版本,可以上【docker hub】搜索【php】,所有的【xxx-fpm】版本都可以使用。.
二、创建项目目录
项目目录:/root/www/project
//-p:循环创建,如何不存在目录,则会自动创建
mkdir -p /root/www/project
三、创建php容器
创建php容器
docker run --name myphp -v $PWD/www:/www -d [php镜像id]
四、创建nginx容器
# conf/conf.d/docker_zhihao1_cn.conf
server {
listen 80;
server_name your domain; #这里修改成自己的域名
location / {
root /usr/share/nginx/html;
index index.html index.htm index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
#当请求网站下php文件的时候,反向代理到php-fpm
location ~ \.php$ {
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /www/$fastcgi_script_name;
include fastcgi_params;
}
}
docker run --name nginx_php -p 9001:80 -d \
-v $PWD/www:/usr/share/nginx/html \
-v $PWD/conf/conf.d:/etc/nginx/conf.d \
--link myphp:php nginx
myphp:php中的 php 是别名
//查看容器日志
docker logs -f -t --tail 10 容器id
//进入容器
docker exec -it myphp /bin/bash
然后就可以访问域名了。
参考阅读:
https://www.zhihao1.cn/91.html
https://juejin.cn/post/7029730919510442020