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.hqwc.cn/news/618513.html

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

相关文章

启动nginx时报错:signal process started

解决方案,直接使用该命令启动,指向nginx.conf配置文件: nginx -c /www/wdlinux/nginx/conf/nginx.conf 启动成功:

产生死锁的四个必要条件

产生死锁的四个必要条件 互斥使用: 一个资源每次只能被一个线程使用。这意味着如果一个线程已经获取了某个资源(比如锁),那么其他线程就必须等待,直到该线程释放资源。 不可抢占: 已经获得资源的线程在释放资源之前,不…

[尚硅谷flink] 检查点笔记

在Flink中,有一套完整的容错机制来保证故障后的恢复,其中最重要的就是检查点。 文章目录 11.1 检查点11.1.1 检查点的保存1)周期性的触发保存2)保存的时间点3)保存的具体流程 11.1.2 从检查点恢复状态11.1.3 检查点算法…

如何在Windows安装LocalSend并结合内网穿透实现公网跨平台远程文件互传

文章目录 1. 在Windows上安装LocalSend2. 安装Cpolar内网穿透3. 公网访问LocalSend4. 固定LocalSend公网地址 本篇文章介绍在Windows中部署开源免费文件传输工具——LocalSend,并且结合cpolar内网穿透实现公网远程下载传输文件。 localsend是一款基于局域网的文件传…

【菜狗学前端】原生Ajax笔记(包含原生ajax的get/post传参方式、返回数据等)

这回图片少,给手动替换了~祝看得愉快,学的顺畅!哈哈 一 原生ajax经典四步 (一) 原生ajax经典四步 第一步:创建网络请求的AJAX对象(使用XMLHttpRequest) JavaScript let xhr new XMLHttpRequest() 第二…

【C语言】简易版扫雷+进阶版扫雷

目录 前言 一、分模块化 二、准备雷盘 2.1 游戏菜单 2.2 创建雷盘思路 2.3 构建雷盘 2.4 雷盘展示 2.4.1 初始化雷盘 2.4.2 打印雷盘 三、排雷 3.1 布置雷 3.2 排查雷 四、进阶版扫雷 总结 前言 C语言实现扫雷小游戏,帮我们更进一步的掌握数组、模块化…

bugku-web-decrypt

这里的提示解密后没有什么意义 这里下载文件包 得到一个index.php文件 得到代码 <?php function encrypt($data,$key) {$key md5(ISCC);$x 0;$len strlen($data);$klen strlen($key);for ($i0; $i < $len; $i) { if ($x $klen){$x 0;}$char . $key[$x];$x1;}for…

鸿蒙开发快速入门

基本概念 ArkTS 因为ArkTS是基于Type Script扩展而来&#xff0c;是Type Script的超集&#xff0c;所以也可以关注一下Type Script的语法来理解ArkTS的语法 ArkUI HarmonyOS提供了一套UI开发框架&#xff0c;即方舟开发框架&#xff08;ArkUI框架&#xff09;。方舟开发框架…

k8s:kubectl 命令设置简写启用自动补全功能

k8s&#xff1a;kubectl 命令设置简写&启用自动补全功能 1、设置kubectl命令简写2、启用kubectl自动补全功能 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; Kubernetes&#xff08;K8s&#xff09;是一个强大的容器编排平台&#xff0…

MES管理系统在人工智能方面的应用

为了加强生产管理&#xff0c;提升企业管理水平&#xff0c;制造业之中的很多企业都运用的MES生产管理系统&#xff0c;借以提高对生产车间的监管。那么&#xff0c;MES系统应用的哪些技术&#xff0c;可以促使生产管理变得简单呢?其核心技术主要有以下几个方面。 1、过程控制…

Linux配置程序后台运行(前后台来回切换)

Linux配置程序后台运行 在日常开发过程中&#xff0c;会遇到我们在前台运行程序&#xff0c;此时我们临时有事&#xff0c;但不能关闭终端&#xff0c;否则程序就会在电脑熄屏&#xff08;终端session断开后&#xff09;停止运行。 那么作为一个合格的开发&#xff0c;就必须要…

LeetCode刷题记(三):61~90题

61. 旋转链表 给你一个链表的头节点 head &#xff0c;旋转链表&#xff0c;将链表每个节点向右移动 k 个位置。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], k 2 输出&#xff1a;[4,5,1,2,3]示例 2&#xff1a; 输入&#xff1a;head [0,1,2], k 4 输出&…