docker微服务(nginx+php-fpm搭建)
1.制作php-fpm镜像
1.1 宿主机php-fpm安装
# yum源安装
yum -y install php-fpm
# 修改配置文件
vim /etc/php-fpm.d/www.conf
修改 line 38 listen = 0.0.0.0:9000 #监听所有地址
修改 line 64 ;listen.allowed_clients = 127.0.0.1 #允许其它地址能访问
# 启动服务
systemctl start php-fpm
# 查看9000端口
ss -antpul|grep 9000
1.2 制作php-fpm镜像
# 新建目录
mkdir /root/php
cd /root/php
cp /etc/php-fpm.d/www.conf ./
vim info.php # 内容php测试文件
vim Dockerfile
# Dockerfile内容如下
FROM image:yum
RUN yum -y install php-fpm && yum clean all
RUN mkdir -p /run/php-fpm
COPY www.conf /etc/php-fpm.d/www.conf
WORKDIR /usr/local/nginx/html
COPY info.php info.php
EXPOSE 9000
CMD ["/usr/sbin/php-fpm", "--nodaemonize"]
# 执行生成镜像
docker build -t image:php-fpm
2.制作nginx镜像
1.1 宿主机nginx安装
# 下载安装包
wget nginx-1.17.6.tar.gz
# 安装nginx编辑等环境所需要的包
yum -y install gcc make pcre-devel openssl-devel
# 解压 安装 编译
useradd nginx
tar -xf nginx-1.17.6.tar.gz
cd nginx-1.17.6/
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module # 指定安装目录、用户、组,支持加密功能
make && make install
# 测试案例
echo nginx is running! > /usr/local/nginx/html/info.html
cp info.php /usr/local/nginx/html/
1.2 制作nginx镜像
# 将编译好的nginx目录进行打包压缩
cd /usr/local
tar -czf nginx.tar.gz nginx
# 新建目录
mkdir /root/nginx
cd /root/nginx
mv /usr/local/nginx.tar.gz ./
vim Dockerfile
# Dockerfile内容如下
FROM image:yum
RUN yum -y install pcre openssl && useradd nginx && yum clean all
ADD nginx.tar.gz /usr/local/
WORKDIR /usr/local/nginx/html
EXPOSE 80
CMD ["/usr/local/nginx/sbin/nginx", "-g", "daemon off;"]
# 执行生成镜像
docker build -t image:nginx
3.配置并启动容器
# 容器共享目录
cd /var/webroot #网页文件
cp /usr/local/nginx/html/info.* ./
vim /var/webconfig/nginx.conf
# 内容如下
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
# 启动nginx容器,-p 容器端口和宿主机端口绑定, -v实现容器目录与主机目录共享
docker run -itd -p 80:80 -name nginx -v /var/webconf/nginx.conf:/usr/local/nginx/conf/nginx.conf -v /var/webroot:/usr/local/nginx/html image:nginx
# 启动php-fpm容器, --network= 共享nginx网络
docker run -itd --network=container:nginx -v /var/webroot:/usr/local/nginx/html image:php-fpm
4.测试
curl 192.168.4.21/info.php