原文地址:http://www.taoluyuan.com/index.php/archives/30/#2
展示
-
1.安装
-
2.配置nginx反向代理 httpd+php-fmp
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
- 安装镜像
dcker pull nginx:1.15.3-alpine
- 查看镜像是否存在
docker images
-
运行容器
3.1. 命令
docker run --name mynginx --privileged -p 9090:80 -d nginx:1.15.3-alpine
3.2 参数说明
-d 启动容器后台运行,并返回ID;
-P:将容器内部使用的网络端口映射到我们使用的主机上。
—privileged 赋予容器扩展权限,有些东西启动不了 -
容器与宿主机的文件拷贝
4.1. 命令为了以后修改文件 我们要拷贝一份配置文件到主机里。 这时就要用到docker cp 命令
docker cp tmp:/etc/nginx/nginx.conf /home/ws/nginx/conf/
4.1 说明
两个参数位置对调,就是 反过来,大家可以自己试一下 -
删除容器
5.1 停止容器docker stop mynginx
5.2 删除容器
docker rm mynginx
-
再启动容器
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 赋予容器扩展权限,如果不开,可能有些东西启动不了 -
在浏览器打开
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并没有启动,容器环境启动不了因素很多,或许我们可以一起讨论下 -
说明
1.第三步的的容器创建,只是为了拷贝一份nginx.conf,然后拷贝到宿主机,挂载,为了方便直接在宿主机更改nginx.conf
2.关于类似nginx的web服务器还有一个需要挂载的,就是它的web目录,也就是放程序的文件夹
3.一旦docker容器的删除,就代表容器里的所有将被删除,建议将重要的,可再利用的文件挂载到宿主机,比如 nginx.conf和程序目录
-
1.3安装apache-httpd
- 介绍
我使用apache基本是是为了与php结合,apache与php结合有多种,我一般是apache与 php-fpm的方式,当然nginx也能与php-fpm结合
如果想看关于更多apache 与 php-fpm的相关的文章,可以百多一下,网上有很多,也可以去我的博客套路猿 了解一下,也有关于这些的文章。这里由于篇幅这里只介绍docker - 安装
安装基本跟nginx一样的
-
不一样的地方
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.和nginx/httpd 是两个独立的个体。
2.php-fpm在php出错时启动新的php_fpm 进程(打开ps -ef | grep php-fpm 查看:master process 是一个pho-fpm的主进程负责控制和回收副进程)
3 php-fpm可以与webserver分离,能同事运行多份,甚至多个版本
4效率比mod_php高 -
安装
安装的方式也类似前两个
-
配置
配置将在我另外一篇文章中展示,关于 docker 安装nginx 方向代理 apache-fpm
2.配置nginx反向代理 httpd+php+fmp
由于篇幅原因:配置nginx反向代理 httpd+php+fmp,将在我另外一篇博客展示
完成