docker 安装 nginx + httpd + php-fpm

原文地址:http://www.taoluyuan.com/index.php/archives/30/#2

展示

1.安装

  • 1.1安装docker

    移除旧的版本:
    sudo yum remove docker
    安装一些必要的系统工具:
    sudo yum install -y yum-utils device-mapper-persistent-data lvm2
    添加软件源信息:
    sudo yum-config-manager —add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker- ce.repo
    更新 yum 缓存 : sudo yum makecache fast
    安装 Docker-ce:sudo yum -y install docker-ce
    sudo yum install docker-ce -y
    sudo systemctl start docker
    sudo usermod -aG docker ws
    docker安装时默认创建了docker用户组,将普通用户加入docker用户组就可以不使用sudo来操作dockersudo
    usermod -aG docker ( 这里替换成你自己的用户名)
    注意:光加入还不行,要么重新登录
    要么执行newgrp - docker 改变当前用户的有效群组

    我这里采用的是阿里云加速 进入登录按照提示操作即可
    https://cr.console.aliyun.com/cn-shanghai/mirrors

  • 1.2安装nginx

  1. 安装镜像
    dcker pull nginx:1.15.3-alpine
    
  2. 查看镜像是否存在
    docker images
    
  3. 运行容器

    3.1. 命令

    docker run --name mynginx --privileged -p 9090:80 -d nginx:1.15.3-alpine
    

    3.2 参数说明

    -d 启动容器后台运行,并返回ID;
    -P:将容器内部使用的网络端口映射到我们使用的主机上。
    —privileged 赋予容器扩展权限,有些东西启动不了

  4. 容器与宿主机的文件拷贝
    4.1. 命令

    为了以后修改文件 我们要拷贝一份配置文件到主机里。 这时就要用到docker cp 命令

    docker cp tmp:/etc/nginx/nginx.conf /home/ws/nginx/conf/
    

    4.1 说明
    两个参数位置对调,就是 反过来,大家可以自己试一下

  5. 删除容器
    5.1 停止容器

    docker stop mynginx
    

    5.2 删除容器

    docker rm mynginx
    
  6. 再启动容器
    6.1 命令

    docker run --name mynginx --privileged -p 9090:80 -v /home/ws/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -d nginx:1.15.3-alpine
    

    6.2 参数说明

    -d 启动容器后台运行,并返回ID;
    -P:将容器内部使用的网络端口映射到我们使用的主机上。
    -v 将容器的目录挂载到宿主机[第一个目录是宿主机目录,你们要用自己的目录] 比如nginx的配置文件nginx.conf 挂载到宿主机上
    —privileged 赋予容器扩展权限,如果不开,可能有些东西启动不了

  7. 在浏览器打开

    ip:9090 就能看到nginx的欢迎页
    如果看不到,进入容器,查看nginx是否启动

    docker run -t -i mynginx /bin/sh
    ps -ef | grep nginx
    

    上述命令 docker run -t -i mynginx /bin/sh 进入到容器 因为nginx是alpine 版本的,启动shell是/bin/sh
    如果是其他的比如centos是 /bin/bash
    ps -ef | grep nginx 查看进程
    如果看不到,说明容器的nginx并没有启动,容器环境启动不了因素很多,或许我们可以一起讨论下

  8. 说明

    1.第三步的的容器创建,只是为了拷贝一份nginx.conf,然后拷贝到宿主机,挂载,为了方便直接在宿主机更改nginx.conf
    2.关于类似nginx的web服务器还有一个需要挂载的,就是它的web目录,也就是放程序的文件夹
    3.一旦docker容器的删除,就代表容器里的所有将被删除,建议将重要的,可再利用的文件挂载到宿主机,比如 nginx.conf和程序目录

  • 1.3安装apache-httpd

  1. 介绍

    我使用apache基本是是为了与php结合,apache与php结合有多种,我一般是apache与 php-fpm的方式,当然nginx也能与php-fpm结合
    如果想看关于更多apache 与 php-fpm的相关的文章,可以百多一下,网上有很多,也可以去我的博客套路猿 了解一下,也有关于这些的文章。这里由于篇幅这里只介绍docker

  2. 安装

    安装基本跟nginx一样的

  3. 不一样的地方

    2.1 镜像源不一样

    2.2 每个web服务器配置文件不一样,

    每个web服务器配置文件的目录不一样,项目目录也不一样,至于怎么查看配置文件在哪,有很多种方法
    1 在下载镜像源的地址上也有说明,比如httpd https://hub.docker.com/_/httpd/
    2 还可以进入到容器,,通过linux命令 查看httpd 或者 nginx 的配置文件,比如

    ps -ef | grep nginx
    docker pull httpd:2.4.34-alpine
    

  • 1.4安装php-fpm

  1. 介绍

    1.和nginx/httpd 是两个独立的个体。
    2.php-fpm在php出错时启动新的php_fpm 进程(打开ps -ef | grep php-fpm 查看:master process 是一个pho-fpm的主进程负责控制和回收副进程)
    3 php-fpm可以与webserver分离,能同事运行多份,甚至多个版本
    4效率比mod_php高

  2. 安装

    安装的方式也类似前两个

  3. 配置
    配置将在我另外一篇文章中展示,关于 docker 安装nginx 方向代理 apache-fpm

2.配置nginx反向代理 httpd+php+fmp

由于篇幅原因:配置nginx反向代理 httpd+php+fmp,将在我另外一篇博客展示
完成

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/816407.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在Mac中打开终端的3种方法

在使用Mac时,有时需要深入研究设置,或者完成一些开发人员级的命令行任务。为此,你需要终端应用程序来访问macOS上的命令行。下面是如何启动它。 如何使用聚焦搜索打开终端 也许打开终端最简单、最快的方法是通过聚焦搜索。要启动聚焦搜索&a…

GO语言调用本地自定义模块

1.创建一个模块 创建文件夹greetings并进入该文件夹 mkdir greetingss && cd greetings 初始化模块 go mod init com.gotest/greetings 初始化模块文件成功 模块文件内容如下 确保已安装VSCODE前提下,运行下面命令创建greetings.go文件 在greethings.go添加下面代…

当我们使用git 上传码云的时候报错:Push rejected Push to origin/master was rejected

在我们推送成果去git(码云)的过程中报错:Push rejected Push to origin/master was rejected 这个问题是我们在推的时候被拒绝了 控制台报错: 18:46:19.665: [zengqingqingandluoxuwen] git -c credential.helper -c core.quote…

系统架构最佳实践 -- 金融企业的资损问题介绍

什么是资损 资损通常来讲是指支付场景下的资金损失,这里可以从两个维度看 用户角度:多扣用户款导致用户资金损失,此问题一般需要通过客服等渠道反馈,可以把多的钱退给用户,但是很大程度上损失了用户体验; …

list 简化版模拟实现

1ListNode template<class T>struct ListNode{public:ListNode(const T& x T()):_next(nullptr), _prev(nullptr), _data(x){}//private://共有可访问ListNode<T>* _next;ListNode<T>* _prev;T _data;}; 实现iterator对Node*的封装 实现运算符重载 vo…

万字长文深入理解Docker镜像分层原理、容器数据卷、网络通信架构(Docker系列第2章,共3章)

镜像分层的简单直观体现 在执行docker pull时&#xff0c;会发现多个Pull complete 字样&#xff0c;就能体现分层&#xff0c;如果是一个文件&#xff0c;只会有一个Pull complete 。 docker pull redis Using default tag: latest latest: Pulling from library/redis a2ab…

算法中的复杂度(先做个铺垫)

文章目录 定义与分类时间复杂度概念大O的渐进表示法举例情况注意内涵 空间复杂度最优解 定义与分类 复杂度&#xff1a;衡量算法效率的标准时间效率&#xff1a;衡量这个算法的运行速度&#xff0c;也就是我们常说的时间复杂度空间效率&#xff1a;衡量这个算法所需要的额外空…

分布式结构化数据表Bigtable

文章目录 设计动机与目标数据模型行列时间戳 系统架构主服务器Chubby作用子表服务器SSTable结构子表实际组成子表地址组成子表数据存储及读/写操作数据压缩 性能优化局部性群组&#xff08;Locality groups&#xff09;压缩布隆过滤器 Bigtable是Google开发的基于GFS和Chubby的…

云计算:Linux 部署 OVN 集群

目录 一、实验 1.环境 2.Linux 部署 OVN 集群&#xff08;中心端&#xff09; 3.Linux 部署 OVN 集群&#xff08;业务端1&#xff09; 4.Linux 部署 OVN 集群&#xff08;业务端2&#xff09; 4.OVN 中心端 连接数据库 5.OVN 业务端1 加⼊控制器 6.OVN 业务端2 加⼊控…

强大的压缩和解压缩工具 Keka for Mac

Keka for Mac是一款功能强大的压缩和解压缩工具&#xff0c;专为Mac用户设计。它支持多种压缩格式&#xff0c;包括7z、Zip、Tar、Gzip和Bzip2等&#xff0c;无论是发送电子邮件、备份文件还是节省磁盘空间&#xff0c;Keka都能轻松满足用户需求。 这款软件的操作简单直观&…

Tesserocr 的安装步骤

Tesserocr 的安装 OCR&#xff0c;即 Optical Character Recognition&#xff0c;光学字符识别。是指通过扫描字符&#xff0c;然后通过其形状将其翻译成电子文本的过程。那么对于图形验证码来说&#xff0c;它都是一些不规则的字符&#xff0c;但是这些字符确实是由字符稍加扭…

数据结构与算法——20.B-树

这篇文章我们来讲解一下数据结构中非常重要的B-树。 目录 1.B树的相关介绍 1.1、B树的介绍 1.2、B树的特点 2.B树的节点类 3.小结 1.B树的相关介绍 1.1、B树的介绍 在介绍B树之前&#xff0c;我们回顾一下我们学的树。 首先是二叉树&#xff0c;这个不用多说&#xff…

Linux的文件操作中的静态库的制作

Linux操作系统支持的函数库分为&#xff1a; 静态库&#xff0c;libxxx.a&#xff0c;在编译时就将库编译进可执行程序中。 优点&#xff1a;程序的运行环境中不需要外部的函数库。 缺点&#xff1a;可执行程序大 &#xff08;因为需要 编译&#xff09; 动态库&#xff0c…

Spring Cloud学习笔记:Eureka集群搭建样例

这是本人学习的总结&#xff0c;主要学习资料如下 - 马士兵教育 1、项目架构2、Dependency3、项目启动类4、application.yml5、启动项目 1、项目架构 因为这是单机模拟集群搭建&#xff0c;为了方便管理就都放在了一个项目中。这次准备搭建三个项目server1, server2, server3 …

常见的垃圾回收算法

文章目录 1. 标记清除算法2. 复制算法3. 标记整理算法4. 分代垃圾回收算法 1. 标记清除算法 核心思想&#xff1a; 标记阶段&#xff0c;将所有存活的对象进行标记。Java中使用可达性分析算法&#xff0c;从GC Root开始通过引用链遍历出所有存活对象。清除阶段&#xff0c;从…

webrtc中的Track,MediaChannel,MediaStream

文章目录 Track,MediaChannel,MediaStream的关系MediaStream的创建流程创建VideoChannel的堆栈创建VideoStream的堆栈 sdp中媒体参数信息的映射sdp中媒体信息参数设置体系参数设置流程参数映射体系 Track,MediaChannel,MediaStream的关系 Audio/Video track&#xff0c;MediaC…

[每周一更]-第93期:探索大型生成式聊天工具:从ChatGPT到未来

随着人工智能技术的不断进步&#xff0c;生成式聊天工具正逐渐成为人们日常生活中的一部分。这些工具利用深度学习技术和大规模语言模型的强大能力&#xff0c;能够与用户进行自然、流畅的对话&#xff0c;为我们提供了更加智能和个性化的交流体验。 ChatGPT&#xff1a;开启生…

基于RT-Thread(RTT)的BMP280气压计驱动(I2C通信)

前言 本文基于RTT操作系统使用STM32F401RET6驱动BMP280气压计模块&#xff0c;使用I2C协议通信 一、新建工程 二、添加软件包 三、添加这个包 四、打开CubeMX 五、配置时钟源&#xff0c;使用外部晶振 六、配置串行下载口 七、打开I2C&#xff0c;我这里使用的是I2C2&#x…

LabVIEW直流稳定电源自动化校准系统

LabVIEW直流稳定电源自动化校准系统 直流稳定电源正向着智能化、高精度、多通道、宽量程的方向发展。基于LabVIEW开发环境&#xff0c;设计并实现了一种直流稳定电源自动化校准系统&#xff0c;以提升校准过程的整体效能&#xff0c;实现自动化设备替代人工进行电源校准工作。…

【opencv】示例-stiching.cpp 图像拼接

#include "opencv2/imgcodecs.hpp" // 导入opencv图像编码功能库 #include "opencv2/highgui.hpp" // 导入opencv高层用户界面功能库 #include "opencv2/stitching.hpp" // 导入opencv图像拼接功能库#include <iostream> // 导入输入输出…