docker搭建php环境mysql和nginx
搭建php-nginx-mysql环境使用mysql 5.7.29;php 7.2.29;nginx最新版docker pull php:7.2.29-fpmdocker pull mysql:5.7.29docker pull nginx/var/www/docker-long.com目录结构mysql# 保存mysql数据code ...
·
搭建php-nginx-mysql环境
使用mysql 5.7.29; php 7.2.29; nginx最新版
docker pull php:7.2.29-fpm
docker pull mysql:5.7.29
docker pull nginx
/var/www/docker-long.com目录结构
mysql # 保存mysql数据
code # 放代码
nginx # 存放nginx日志
1 php依赖mysql, 所有要先运行mysql
# -e 启动容器的时候传参数, 设置root密码
docker run -d --name=mysql -p 3306:3306 -v /var/www/docker-long.com/mysql/:/var/lib/mysql/ -e MYSQL_ROOT_PASSWORD=rootroot mysql:5.7.29
# 进入查看
docker exec -it mysql /bin/bash
# 进入容器中的mysql
mysql -uroot -p
2 docekr php
创建一个Dockerfile, 内容如下:
FROM php:7.2.29-fpm
RUN docker-php-ext-install pdo_mysql
docker build -t php7.2-fpm .
# docker inspect php7.2-fpm
# --link 刚才的mysql容器id:别名; 在php代码中不用写ip:3308,用别名就可以 php7.2-fpm
docker run -d --name=php --link mysql:mysql -v /var/www/docker-long.com/code/:/var/www/html/ php7.2-fpm
3 nginx的配置
# nginx/conf.d下的default.conf内容; 注意代理是 php:9000
server {
listen 80;
server_name 127.0.0.1 long.com www.long.com;
root "/var/www/html";
location / {
index index.php index.html;
autoindex off;
}
location ~ \.php(.*)$ {
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include fastcgi_params;
}
}
运行, 挂载3个目录分别是: 网站配置, logs日志, 代码
docker run -d --name=nginx -p 80:80 -v /var/www/docker-long.com/nginx/conf.d/:/etc/nginx/conf.d/ -v /var/www/docker-long.com/nginx/logs/:/var/log/nginx -v /var/www/docker-long.com/code/:/var/www/html/ --link php:php nginx
成功ok
更多推荐
所有评论(0)