docker 安装 pipe 整理

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

; 创建自定义网络 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容器访问到相应的文件了

相关帖子

欢迎来到这里!

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

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

推荐标签 标签

  • Latke

    Latke 是一款以 JSON 为主的 Java Web 框架。

    70 引用 • 527 回帖 • 604 关注
  • IPFS

    IPFS(InterPlanetary File System,星际文件系统)是永久的、去中心化保存和共享文件的方法,这是一种内容可寻址、版本化、点对点超媒体的分布式协议。请浏览 IPFS 入门笔记了解更多细节。

    20 引用 • 245 回帖 • 249 关注
  • 域名

    域名(Domain Name),简称域名、网域,是由一串用点分隔的名字组成的 Internet 上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。

    43 引用 • 208 回帖
  • TGIF

    Thank God It's Friday! 感谢老天,总算到星期五啦!

    278 引用 • 4472 回帖 • 615 关注
  • Redis

    Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。从 2010 年 3 月 15 日起,Redis 的开发工作由 VMware 主持。从 2013 年 5 月开始,Redis 的开发由 Pivotal 赞助。

    272 引用 • 245 回帖 • 446 关注
  • Ruby

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

    7 引用 • 31 回帖 • 119 关注
  • SQLite

    SQLite 是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是全世界使用最为广泛的数据库引擎。

    4 引用 • 7 回帖 • 1 关注
  • Firefox

    Mozilla Firefox 中文俗称“火狐”(正式缩写为 Fx 或 fx,非正式缩写为 FF),是一个开源的网页浏览器,使用 Gecko 排版引擎,支持多种操作系统,如 Windows、OSX 及 Linux 等。

    7 引用 • 30 回帖 • 482 关注
  • Gitea

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

    3 引用 • 16 回帖 • 2 关注
  • GitHub

    GitHub 于 2008 年上线,目前,除了 Git 代码仓库托管及基本的 Web 管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。正因为这些功能所提供的便利,又经过长期的积累,GitHub 的用户活跃度很高,在开源世界里享有深远的声望,并形成了社交化编程文化(Social Coding)。

    202 引用 • 2014 回帖
  • 创业

    你比 99% 的人都优秀么?

    81 引用 • 1394 回帖 • 2 关注
  • Webswing

    Webswing 是一个能将任何 Swing 应用通过纯 HTML5 运行在浏览器中的 Web 服务器,详细介绍请看 将 Java Swing 应用变成 Web 应用

    1 引用 • 15 回帖 • 588 关注
  • InfluxDB

    InfluxDB 是一个开源的没有外部依赖的时间序列数据库。适用于记录度量,事件及实时分析。

    2 引用 • 67 关注
  • Quicker

    Quicker 您的指尖工具箱!操作更少,收获更多!

    13 引用 • 66 回帖 • 1 关注
  • RYMCU

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

    4 引用 • 6 回帖 • 19 关注
  • 国际化

    i18n(其来源是英文单词 internationalization 的首末字符 i 和 n,18 为中间的字符数)是“国际化”的简称。对程序来说,国际化是指在不修改代码的情况下,能根据不同语言及地区显示相应的界面。

    7 引用 • 26 回帖 • 3 关注
  • Electron

    Electron 基于 Chromium 和 Node.js,让你可以使用 HTML、CSS 和 JavaScript 构建应用。它是一个由 GitHub 及众多贡献者组成的活跃社区共同维护的开源项目,兼容 Mac、Windows 和 Linux,它构建的应用可在这三个操作系统上面运行。

    17 引用 • 142 回帖
  • golang

    Go 语言是 Google 推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去 10 多年间软件开发的难度令人沮丧。Go 是谷歌 2009 发布的第二款编程语言。

    485 引用 • 1387 回帖 • 507 关注
  • CloudFoundry

    Cloud Foundry 是 VMware 推出的业界第一个开源 PaaS 云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒钟内进行应用程序的部署和扩展,无需担心任何基础架构的问题。

    5 引用 • 18 回帖 • 99 关注
  • jsDelivr

    jsDelivr 是一个开源的 CDN 服务,可为 npm 包、GitHub 仓库提供免费、快速并且可靠的全球 CDN 加速服务。

    5 引用 • 30 回帖 • 30 关注
  • OpenShift

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

    14 引用 • 20 回帖 • 588 关注
  • Kotlin

    Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,由 JetBrains 设计开发并开源。Kotlin 可以编译成 Java 字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。在 Google I/O 2017 中,Google 宣布 Kotlin 成为 Android 官方开发语言。

    18 引用 • 30 回帖 • 5 关注
  • Mobi.css

    Mobi.css is a lightweight, flexible CSS framework that focus on mobile.

    1 引用 • 6 回帖 • 622 关注
  • 阿里巴巴

    阿里巴巴网络技术有限公司(简称:阿里巴巴集团)是以曾担任英语教师的马云为首的 18 人,于 1999 年在中国杭州创立,他们相信互联网能够创造公平的竞争环境,让小企业通过创新与科技扩展业务,并在参与国内或全球市场竞争时处于更有利的位置。

    43 引用 • 221 回帖 • 365 关注
  • 新人

    让我们欢迎这对新人。哦,不好意思说错了,让我们欢迎这位新人!
    新手上路,请谨慎驾驶!

    49 引用 • 225 回帖 • 1 关注
  • Sym

    Sym 是一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)系统平台,“下一代的社区系统,为未来而构建”。

    521 引用 • 4570 回帖 • 643 关注
  • 小说

    小说是以刻画人物形象为中心,通过完整的故事情节和环境描写来反映社会生活的文学体裁。

    26 引用 • 107 回帖 • 2 关注