Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。通过 uname -r 命令查看你当前的内核版本 ---------------------  #展示 * ###[1.安装](#1) * ####[1.1安装docker](#1.1) * ####[1.2安装nginx](#1.2) * ####[1.3安装apache-httpd](#1.3) * ####[1.4安装php-fpm](#1.4) * ###[2.配置nginx反向代理 httpd+php-fmp](#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](#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的相关的文章,可以百多一下,网上有很多,也可以去我的博客[套路猿](#http://www.taoluyuan.com) 了解一下,也有关于这些的文章。这里由于篇幅这里只介绍docker 2. 安装 >安装基本跟nginx一样的 2. 不一样的地方 2.1 镜像源不一样 2.2 每个web服务器配置文件不一样, >每个web服务器配置文件的目录不一样,项目目录也不一样,至于怎么查看配置文件在哪,有很多种方法 >1 在下载镜像源的地址上也有说明,比如httpd [https://hub.docker.com/_/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. 安装 >下载镜像 > ``` docker pull httpd:2.4-alpine ``` >安装的方式也类似前两个 3. 配置 配置将在我另外一篇文章中展示,关于 docker 安装nginx 方向代理 apache-fpm 2.配置nginx反向代理 httpd+php+fmp >由于篇幅原因:配置nginx反向代理 httpd+php+fmp,将在我另外一篇博客展示 > 完成