docker灵活的构建PHP环境的实现

2020-06-17 07:17:59易采站长站整理

使用docker搭建灵活的线上php环境 有时候你可能不太需要一些别人已经集成了的包或者镜像

我们就可以使用以下方式自己动手逐一构建自己所需要的环境结构 并在最后实现一键自动化部署

一步一步点亮docker技能树


## .
## ## ## ==
## ## ## ## ## ===
/""""""""""""""""".__/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~
._____ o __/
. . __/
.___.______/

* 首先 clone [server] 项目 放到服务器根目录(到后面你也可以构建自己风格的环境结构)

(一阶) 使用 docker 逐一构建

1. 下载镜像

docker pull php:7.2-fpm 冒号后选择版本

docker pull nginx

docker pull mysql:5.7 不需要本地数据库可忽略

docker pull redis:3.2 不需要本地 redis 可忽略

docker images 查看已下载的所有镜像

2. 下载完成镜像后运行容器 [以下采用 –link 方式创建容器 注意创建顺序]

注:
-i 表示允许我们对容器进行操作
-t 表示在新容器内指定一个为终端
-d 表示容器在后台执行
/bin/bash 这将在容器内启动bash shell
-p 为容器和宿主机创建端口映射
–name 为容器指定一个名字
-v 将容器内路径挂载到宿主机路径
–privileged=true 给容器特权,在挂载目录后容器可以访问目录以下的文件或者目录
–link可以用来链接2个容器,使得源容器(被链接的容器)和接收容器(主动去链接的容器)之间可以互相通信,解除了容器之间通信对容器IP的依赖

<运行 mysql 容器>


docker run --name mydb -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

注:-MYSQL_ROOT_PASSWORD=123456 给mysql设置初始密码

如果不需要搭建本地数据库直接下一步

<运行 redis 容器>


docker run --name myredis -p 6379:6379 -d redis:3.2

注: 如果不需要搭建本地redis直接下一步

<运行 php 容器>


docker run -d -p 9000:9000 --name myphp -v /server/www:/var/www/html -v /server/php:/usr/local/etc/php --link mydb:mydb --link myredis:myredis --privileged=true php:7.2-fpm

注: 如果不需要搭建本地数据库或者redis可以省去–link mydb:mydb –link myredis:myredis

注意-v 挂载一个空文件夹是会覆盖容器中的内容,所以配置文件要事先准备好

<运行 nginx 容器>


docker run --name mynginx -d -p 80:80 -v /server/www:/usr/share/nginx/html -v /server/nginx:/etc/nginx -v /server/logs/nginx.logs:/var/log/nginx --link myphp:myphp --privileged=true nginx