修炼docker越来越久就越是觉得docker方便和快捷。随着修炼的东西越来越多,所以最近想做个小的demo测试一下,顺便验证一些东西。
这个demo主要是实现一个简单的功能 执行php文件,插入多条记录入数据库
,听起来是不是很简单,流程如下图:
docker运行环境安装
序言
- 一般来说,想要运行php基本离不开lnmp运行环境,即linux、nginx、 mysql、 和php;
- 环境要求,docker需要先安装好,linux我用的是
Linux version 3.10.0-1127.13.1.el7.x86_64
(这个不重要) - 必须得连的上外网,
ping www.baidu.com
能ping通。
php安装
安装php
docker pull php-fpm:7.1
docker ps
#生成容器 挂载 -v [本机目录]:[容器目录]
docker run -p 9000:9000 --name php_test-v /var/www:/var/www -d php:7.1-fpm
docker exec-it php_test bash #(测试一下能不能进去)
到这里 PHP就安装好了
nginx安装
1.安装搭建nginx
#直接拉最新的nginx,当然如果你喜欢其他版本也可以吧latest换成对应版本号就行
docker pull nginx:latest
#查看是否拉取到了本地
docker images
docker run -itd --name nginx_test -p 80:80 nginx
docker ps #查看是否运行
#没有浏览器就用curl
curl localhost(会看到熟悉的nginx的html码)
看,nginx一下子就可以正常运行了,舒服啊。当然真正的不可能这么简单,我们要修改一些东西, 我们重新创建一个nginx容器
#有些人觉得第一个nginx好烦,又没有用,可以先删掉
docker stop nginx_test
docker rm nginx_test
#
#
#1.这里多挂载一个目录文件是用来放资源文件的。
#2. 还记得开始的php容器吗?我们连接上他,让他和nginx相互连接,用--link就可以解决
#3.记得提前先在本地创建一个default.conf文件,不需要什么内容。不然会报错找不到该文件
docker run --name nginx_test -p 80:80 -v /var/www:/var/www -v /usr/local/nginx/conf/default.conf:/etc/nginx/default.conf -d:ro --link php_test nginx
docker ps
docker exec -it nginx_test bash
#查看容器是否运行,进入容器查看是否运行成功。
到这里,nginx容器就算建立好了,接下来还有一个配置文件没有创建,创建default.conf
2.修改nginx的配置文件
#cd到本机的挂载目录上
cd /usr/local/nginx/conf/
#创建配置文件
touch default.conf
vim default.conf
default.conf文件
server {
listen 80; #这个接口要对应你-p映射的接口80:80
server_name localhost;
root /var/www; #(这里需要修改为自己指定的资源目录,可以是第一个挂载点,也可以自定义)
index index.html index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico {
access_log off; log_not_found off; }
location