docker搭建php环境mysql和nginx

搭建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

你可能感兴趣的:(php学习笔记,php,docker)