window下环境安装实质为安装linux虚拟机,所以访问地址会是默认是 192.168.99.100,而不是127.0.0.1
window主机与虚拟机的公共文件夹,方便管理
先创建一个文件夹用作虚拟机挂载,我这里命名docker_file,打开Oracle VM VirtualBox,下图步骤操作后,记得 重启虚拟机
你可以选择 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 为容器指定一个名称
挂载目录为之前设置共享文件夹下创建对应目录/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里的 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
在主机docker_file\nginx\www目录下创建index.php,输入代码起源语句
echo "hello world";
?>
在浏览器上访问 http://192.168.99.100:8080/index.php
因为本地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