使用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










