docker 安装 pipe 整理

本贴最后更新于 1726 天前,其中的信息可能已经时异事殊

; 创建自定义网络 micro 如果有多个容器实例
docker network create --subnet=172.18.0.0/16 micro

使用 MySQL
先手动建库(库名 pipe,字符集使用 utf8mb4,排序规则 utf8mb4_general_ci),然后启动容器:

; mysql docker

docker run -dit -v /www/mysql/conf/my.cnf:/etc/mysql/my.cnf \  
 -v /www/mysql/logs:/logs -v /www/mysql/data:/mysql_data \  
 -p 3306:3306 --net alpine-net  -e MYSQL_ROOT_PASSWORD=123123 \  
 --name mysql mysql:5.7  

获取最新镜像:
docker pull b3log/pipe

运行镜像

docker run -dit -p 5897:5897 --name pipe --network micro --ip 172.18.0.3 \
    b3log/pipe --mysql="mysql_user:mysql_passwd@(172.18.0.1:3306)/pipe?charset=utf8mb4&parseTime=True&loc=Local" \
    --runtime_mode=prod --server=http://server_ip:port

说明一下遇到的问题:p 5897 是宿主机和容器通信的端口,并非 blog 项目端口
go blog 项目端口 --server=http://server_ip:port
需要开通对应的云服务器 管理防火墙的端口 和 linux firewall 端口

例如 8811 是 web 访问端口,宿主机和容器是 5897,容器中的 blog 应该也是 8811 端口 因为--server 这个地址在访问后会 使用--server=http://server_ip:port 设置的域名/ip+port

upstream pipe{
	# pipe blog  #这个端口是服务器可通信端口
	server 172.18.0.3:5897;
}

server {
	# 监听端口
        listen 8811;
        server_name xxx.xxx.xxx.xxx;
        error_log /www/logs/blog.log;

        location / {
	    proxy_pass http://pipe$request_uri;
            proxy_set_header Host $host:$server_port;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	
            client_max_body_size 10m;
        }
}

; NGINX Docker
指定容器外部配置 指定配置文件,日志文件,servers,外部端口,连接,网络配置 名称等

docker run -dit -v /www/dockerconf/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /www/dockerconf/nginx/servers:/etc/nginx/servers \
-v /www:/www -p 80:80 -p 8811:8811 --link pipe \
--net micro --ip 172.18.0.5 --name nginx nginx:1.15 

docker 安装 PHP

docker pull php:7.1-fpm

docker run -dit -p 9000:9000 \  
-v /www/dockerconf/php/php.ini:/usr/local/etc/php/php.ini \  
-v /www:/www --link nginx \  
-w /www/test \  
--net micro --ip 172.18.0.2 \  
--name php php:7.3-fpm

编辑对应的nginx
server {
    listen       80;
    server_name  algo.test.com;
    root /home/algorithm;

    access_log  /var/log/nginx/access.log  main;
    error_log /var/log/nginx/error.log error;

    location / {
        index  index.html index.htm index.php;
    }

    location ~ \.php$ {
        fastcgi_pass   172.17.0.3:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}
关于`fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name`这个配置,如果你想用`$document_root`变量,那就必须把nginx容器的数据目录与php容器的数据目录弄成一致的,比如我的nginx容器的数据目录是/home/algorithm,在php容器中依然是这个,如果php容器中的目录改变了,不是这个了,那么php容器就会找不到请求的这个文件的。

因为两个容器相当于两套文件系统,路径有可能是不一样的。但是呢,如果你偏要设置成不一样的,那么只能写死地址了,比如弄成这样:`fastcgi_param SCRIPT_FILENAME /home/algorithm/$fastcgi_script_name`,就可以让php容器访问到相应的文件了

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • Logseq

    Logseq 是一个隐私优先、开源的知识库工具。

    Logseq is a joyful, open-source outliner that works on top of local plain-text Markdown and Org-mode files. Use it to write, organize and share your thoughts, keep your to-do list, and build your own digital garden.

    6 引用 • 63 回帖 • 1 关注
  • 禅道

    禅道是一款国产的开源项目管理软件,她的核心管理思想基于敏捷方法 scrum,内置了产品管理和项目管理,同时又根据国内研发现状补充了测试管理、计划管理、发布管理、文档管理、事务管理等功能,在一个软件中就可以将软件研发中的需求、任务、bug、用例、计划、发布等要素有序的跟踪管理起来,完整地覆盖了项目管理的核心流程。

    6 引用 • 15 回帖 • 82 关注
  • Spark

    Spark 是 UC Berkeley AMP lab 所开源的类 Hadoop MapReduce 的通用并行框架。Spark 拥有 Hadoop MapReduce 所具有的优点;但不同于 MapReduce 的是 Job 中间输出结果可以保存在内存中,从而不再需要读写 HDFS,因此 Spark 能更好地适用于数据挖掘与机器学习等需要迭代的 MapReduce 的算法。

    74 引用 • 46 回帖 • 568 关注
  • 创造

    你创造的作品可能会帮助到很多人,如果是开源项目的话就更赞了!

    178 引用 • 997 回帖
  • OpenStack

    OpenStack 是一个云操作系统,通过数据中心可控制大型的计算、存储、网络等资源池。所有的管理通过前端界面管理员就可以完成,同样也可以通过 Web 接口让最终用户部署资源。

    10 引用 • 1 关注
  • Gitea

    Gitea 是一个开源社区驱动的轻量级代码托管解决方案,后端采用 Go 编写,采用 MIT 许可证。

    4 引用 • 16 回帖
  • 大数据

    大数据(big data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

    93 引用 • 113 回帖
  • 安装

    你若安好,便是晴天。

    132 引用 • 1184 回帖 • 1 关注
  • RYMCU

    RYMCU 致力于打造一个即严谨又活泼、专业又不失有趣,为数百万人服务的开源嵌入式知识学习交流平台。

    4 引用 • 6 回帖 • 48 关注
  • 架构

    我们平时所说的“架构”主要是指软件架构,这是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。另外还有“业务架构”、“网络架构”、“硬件架构”等细分领域。

    143 引用 • 442 回帖 • 1 关注
  • OpenShift

    红帽提供的 PaaS 云,支持多种编程语言,为开发人员提供了更为灵活的框架、存储选择。

    14 引用 • 20 回帖 • 639 关注
  • RemNote
    2 引用 • 16 回帖 • 4 关注
  • Dubbo

    Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,是 [阿里巴巴] SOA 服务化治理方案的核心框架,每天为 2,000+ 个服务提供 3,000,000,000+ 次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。

    60 引用 • 82 回帖 • 598 关注
  • 服务

    提供一个服务绝不仅仅是简单的把硬件和软件累加在一起,它包括了服务的可靠性、服务的标准化、以及对服务的监控、维护、技术支持等。

    41 引用 • 24 回帖
  • SVN

    SVN 是 Subversion 的简称,是一个开放源代码的版本控制系统,相较于 RCS、CVS,它采用了分支管理系统,它的设计目标就是取代 CVS。

    29 引用 • 98 回帖 • 690 关注
  • 数据库

    据说 99% 的性能瓶颈都在数据库。

    344 引用 • 723 回帖
  • App

    App(应用程序,Application 的缩写)一般指手机软件。

    91 引用 • 384 回帖
  • 996
    13 引用 • 200 回帖 • 13 关注
  • Rust

    Rust 是一门赋予每个人构建可靠且高效软件能力的语言。Rust 由 Mozilla 开发,最早发布于 2014 年 9 月。

    58 引用 • 22 回帖 • 4 关注
  • Excel
    30 引用 • 28 回帖
  • 服务器

    服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。

    127 引用 • 589 回帖
  • Ruby

    Ruby 是一种开源的面向对象程序设计的服务器端脚本语言,在 20 世纪 90 年代中期由日本的松本行弘(まつもとゆきひろ/Yukihiro Matsumoto)设计并开发。在 Ruby 社区,松本也被称为马茨(Matz)。

    7 引用 • 31 回帖 • 224 关注
  • WebClipper

    Web Clipper 是一款浏览器剪藏扩展,它可以帮助你把网页内容剪藏到本地。

    3 引用 • 9 回帖 • 2 关注
  • PHP

    PHP(Hypertext Preprocessor)是一种开源脚本语言。语法吸收了 C 语言、 Java 和 Perl 的特点,主要适用于 Web 开发领域,据说是世界上最好的编程语言。

    179 引用 • 407 回帖 • 484 关注
  • TensorFlow

    TensorFlow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。

    20 引用 • 19 回帖 • 1 关注
  • ActiveMQ

    ActiveMQ 是 Apache 旗下的一款开源消息总线系统,它完整实现了 JMS 规范,是一个企业级的消息中间件。

    19 引用 • 13 回帖 • 671 关注
  • 强迫症

    强迫症(OCD)属于焦虑障碍的一种类型,是一组以强迫思维和强迫行为为主要临床表现的神经精神疾病,其特点为有意识的强迫和反强迫并存,一些毫无意义、甚至违背自己意愿的想法或冲动反反复复侵入患者的日常生活。

    15 引用 • 161 回帖