window下docker搭建php+nginx+mysql环境

1.docker安装

① 菜鸟文档传送门: 各环境下安装docker教程

window下环境安装实质为安装linux虚拟机,所以访问地址会是默认是 192.168.99.100,而不是127.0.0.1

② 配置管理文件夹

window主机与虚拟机的公共文件夹,方便管理

创建一个文件夹用作虚拟机挂载,我这里命名docker_file,打开Oracle VM VirtualBox,下图步骤操作后,记得 重启虚拟机
window下docker搭建php+nginx+mysql环境_第1张图片

2.指令操作

你可以选择 Docker Quickstart Terminal,安装自带的
这里使用 xshell, 192.168.99.100,用户名:docker,密码:tcuser

① 安装镜像
docker pull php:7.2-fpm&docker pull mysql:latest&docker pull nginx:latest
② 运行容器

-d 后台运行容器,并返回容器ID
-p 指定端口映射,格式为:主机(宿主)端口:容器端口
-v 绑定一个卷,主机(宿主)文件夹:容器文件夹
-name 为容器指定一个名称

php容器

挂载目录为之前设置共享文件夹下创建对应目录/docker_file/nginx/www

docker run -d -p 9000:9000 -v /docker_file/nginx/www:/data/www --name php72 php:7.2-fpm

创建default.conf文件到目录/docker_file/nginx/conf/,代码如下

root / fastcgi_param , 容器挂载目录

server {
    listen       80;
    server_name  localhost;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location ~ \.php$ {
        root /data/www;
        fastcgi_pass   192.168.99.100:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /data/www/$fastcgi_script_name;
        fastcgi_param  SCRIPT_NAME $fastcgi_script_name;
        include        fastcgi_params;
    }
}
nginx容器

挂载nginx里的 www,conf文件目录,一行一行复制

:ro 只读,容器内不能修改

docker run -d -p 8080:80 -v /docker_file/nginx/www:/data/www \
-v /docker_file/nginx/conf:/etc/nginx/conf.d:ro \
--name mynginx nginx:latest

进入容器

docker exec -ti mynginx /bin/bash

查看挂载文件是否存在,可忽略.容器目录没有文件,确保以上步骤没错,就重启虚拟机,再重启容器,再重新查看

cd etc/nginx/conf.d
cat default.conf

window下docker搭建php+nginx+mysql环境_第2张图片
在主机docker_file\nginx\www目录下创建index.php,输入代码起源语句


echo "hello world";
?>

在浏览器上访问 http://192.168.99.100:8080/index.php

window下docker搭建php+nginx+mysql环境_第3张图片

mysql容器

因为本地3306已经使用,所以这里映射3307
操作前得退出之前nginx的容器,退出容器 ctrl+shift+p+q

docker run -itd --name mysql-test -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

进入mysql容器

docker exec -it mysql-test /bin/bash

创建账户

mysql -h localhost -u root -p

输入root账户的密码
window下docker搭建php+nginx+mysql环境_第4张图片
Navicat 连接数据库
window下docker搭建php+nginx+mysql环境_第5张图片

你可能感兴趣的:(docker,docker,php,nginx)