小工具知识网

当前位置: 首页 > 行业知识 > 探索Nginx+FastDFS+RTMP的Docker镜像搭建

行业知识

探索Nginx+FastDFS+RTMP的Docker镜像搭建

2026-10-21 16:29:26 来源:互联网转载

标题

    • 探索Nginx+FastDFS+RTMP的Docker镜像搭建
    • Dockerfile
    • 启动脚本
    • 构建镜像
    • 上传dockerhub
    • 推送镜像到dockerhub
    • 获取镜像
    • 启动服务
    • fastdfs指定ip,nginx配置修改
      • 总结
      • 参考资���

        博主 默语带您 Go to New World.

        ✍ 个人主页—— 默语 的博客

        《java 面试题大全》

        《java 专栏》

        惟余辈才疏学浅,临摹之作或有不妥之处,还请读者海涵指正。☕

        《MYSQL从入门到精通》数据库是开发者必会基础之一~

        吾期望此文有资助于尔,即使粗浅难及深广,亦备添少许微薄之助。苟未尽善尽美,敬请批评指正,以资改进。!⌨


        探索Nginx+FastDFS+RTMP的Docker镜像搭建

        在本篇博客中,我们将深入探讨如何利用Docker构建Nginx、FastDFS以及RTMP的集成环境。我们将从Dockerfile的编写开始,一步步搭建起这个环境,并说明如何使用这个镜像来部署服务。

        Dockerfile

        FROM centos:7LABEL maintainer "qiao"# 更新系统并安装 Vim,安装编译工具和开发库RUN yum update -y && yum install -y gcc gcc-c++ make cmake sysvinit-tools pcre pcre-devel unzip zlib zlib-devel openssl openssl-devel libevent libevent-devel perl net-toolsENV NGINX_VERSION="1.24.0"# 设置容器中文,否则中文乱码ENV LANG C.UTF-8#   设置时区ENV TZ Asia/Shanghai# 拷贝nginx安装包和fastdfs安装包COPY nginx-${NGINX_VERSION}.tar.gz /usr/local/nginx-${NGINX_VERSION}.tar.gzCOPY nginx-rtmp-module.tar.gz /usr/local/nginx-rtmp-module.tar.gzCOPY fastdfs-nginx-module-1.22.zip /usr/local/fastdfs/fastdfs-nginx-module-1.22.zipCOPY libfastcommon-1.0.45.tar.gz /usr/local/fastdfs/libfastcommon-1.0.45.tar.gzCOPY fastdfs-6.07.zip /usr/local/fastdfs/fastdfs-6.07.zipCOPY entrypoint.sh /usr/bin/# 复制libfdfsclient.so文件到【usr/lib】目录COPY libfdfsclient.so /usr/lib/# 复制 Nginx 配置文件COPY nginx.conf /etc/nginx/nginx.conf# 安装RUN cd /usr/local/fastdfs && tar -zxvf libfastcommon-1.0.45.tar.gz && chmod +x /usr/local/fastdfs/libfastcommon-1.0.45/make.sh && \cd /usr/local/fastdfs/libfastcommon-1.0.45 && ./make.sh && ./make.sh install && \ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so && ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so && \cd /usr/local/fastdfs && unzip fastdfs-6.07.zip && chmod +x /usr/local/fastdfs/fastdfs-6.07/make.sh && cd /usr/local/fastdfs/fastdfs-6.07 && \./make.sh && ./make.sh install && \cp -f /usr/local/fastdfs/fastdfs-6.07/conf/client.conf /etc/fdfs/client.conf && \cp -f /usr/local/fastdfs/fastdfs-6.07/conf/tracker.conf /etc/fdfs/tracker.conf && \cp -f /usr/local/fastdfs/fastdfs-6.07/conf/storage.conf /etc/fdfs/storage.conf && \cp -f /usr/local/fastdfs/fastdfs-6.07/conf/http.conf /etc/fdfs/ && \cp -f /usr/local/fastdfs/fastdfs-6.07/conf/mime.types /etc/fdfs/ && \chmod 777 -R /usr/local && \cd /usr/local && tar -zxvf nginx-rtmp-module.tar.gz && \cd /usr/local && tar -zxvf nginx-${NGINX_VERSION}.tar.gz && \cd /usr/local/fastdfs && unzip fastdfs-nginx-module-1.22.zip && \cp /usr/local/fastdfs/fastdfs-nginx-module-1.22/src/mod_fastdfs.conf /etc/fdfs/ && \cd /usr/local/nginx-${NGINX_VERSION} && \    ./configure --prefix=/usr/local/nginx --add-module=/usr/local/fastdfs/fastdfs-nginx-module-1.22/src/ --add-module=/usr/local/nginx-rtmp-module --with-stream && \    make && make install && chmod a+x /usr/bin/entrypoint.sh && chmod a+x /etc/rc.d/init.d/fdfs_trackerd && chmod a+x /etc/rc.d/init.d/fdfs_storaged && \rm -rf /usr/local/nginx-${NGINX_VERSION}.tar.gz && \rm -rf /usr/local/nginx-rtmp-module.tar.gz && \rm -rf /usr/local/fastdfs/fastdfs-nginx-module-1.22.zip && \rm -rf /usr/local/fastdfs/libfastcommon-1.0.45.tar.gz && \rm -rf /usr/local/fastdfs/fastdfs-6.07.zip# 暴露 RTMP 和 HTTP 端口EXPOSE 22122 23000 80 1935# 设置工作目录WORKDIR /usr/local/nginx# 启动脚本ENTRYPOINT ["/usr/bin/entrypoint.sh"]

        启动脚本

        #!/bin/sh#set -eecho "start fastdfs"/etc/rc.d/init.d/fdfs_trackerd restartecho $?sleep 3/etc/rc.d/init.d/fdfs_storaged restartecho $?sleep 3/usr/local/nginx/sbin/nginxecho $?tail -f /usr/local/nginx/logs/access.log

        构建镜像

        :::info

        在dockerfile文件目录下执行下面命令构建~

        :::

        docker build -t mynginx .

        上传dockerhub

        :::info

        先登录dockerhub,按提示输入账号密码

        :::

        docker login

        推送镜像到dockerhub

        :::info

        先在本地打远程标记镜像,然后推送

        :::

        docker tag mynginx:1.24.0 q08240/mynginx:1.24.0docker push q08240/mynginx:1.24.0

        获取镜像

        :::info

        使用docker pull 直接拉取

        :::

        docker pull q08240/mynginx:1.24.0

        启动服务

        docker run -d \  --name nginx \  --hostname nginx \  -p 80:80 \  -p 3009:3009 \  -p 22122:22122 \  -p 23000:23000 \  -p 1935:1935 \  --privileged=true \  -v /opt/dist:/opt/dist \  -v /opt/topology/dist:/opt/topology/dist \  -v /root/image:/root/image \  -v /usr/local/nginx/conf/nginx.conf:/usr/local/nginx/conf/nginx.conf \  -v /usr/local/fastdfs/fastdfs-6.07/storage/data:/usr/local/fastdfs/fastdfs-6.07/storage/data \  -v /etc/fdfs/client.conf:/etc/fdfs/client.conf \  -v /etc/fdfs/tracker.conf:/etc/fdfs/tracker.conf \  -v /etc/fdfs/storage.conf:/etc/fdfs/storage.conf \  -v /etc/fdfs/mod_fastdfs.conf:/etc/fdfs/mod_fastdfs.conf \  -v /etc/fdfs/http.conf:/etc/fdfs/http.conf \  -v /etc/fdfs/mime.types:/etc/fdfs/mime.types \  q08240/mynginx:1.24.0

        fastdfs指定ip,nginx配置修改

        相关配置文件放到宿主机中,启动服务的时候,把配置文件信息挂载到容器中,修改宿主机的配置文件即可~

        文件如下:

        文件目录说明
        /opt/dist前端项目目录
        /opt/topology/disttopology前端项目目录
        /root/image图片目录
        /usr/local/nginx/conf/nginx.confnginx配置文件
        /usr/local/fastdfs/fastdfs-6.07/storage/datafastdfs数据目录
        /etc/fdfs/client.confclient.conf
        /etc/fdfs/tracker.conftracker.conf
        /etc/fdfs/storage.confstorage.conf
        /etc/fdfs/http.confhttp.conf
        /etc/fdfs/mime.typesmime.types

        注意:上述配置文件跟宿主机安装的配置文件相同,复制一份修改ip等先关配置即可~

        总结

        通过本篇博客的介绍,我们学习了如何利用Docker构建Nginx、FastDFS以及RTMP的集成环境,并进行了相应的配置和部署。这为项目的运行提供了便利,提高了开发和部署的效率。

        参考资料

        • Nginx Documentation
        • FastDFS Documentation
        • RTMP Documentation

          希望本文对您有所帮助,如果有任何疑问或建议,欢迎留言讨论!


          希望本文能够给您带来一定的帮助文章粗浅,敬请批评指正!

          如对本文内容有任何疑问、建议或意见,请联系作者,作者将尽力回复并改进;(联系微信:Solitudemind )

          点击下方名片,加入IT技术核心学习团队。一起探索科技的未来,共同成长。

上一篇:家庭电脑怎么搭建服务器?

下一篇:电脑主机里上小功放和啦吧