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,将在我另外一篇博客展示
完成

  • 21
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值