准备工作
安装docker:基于win10安装docker
在本地建立文件夹放置配置文件和日志
D:\apps\docker\mysql57
D:\apps\docker\nginx112
D:\apps\docker\php73
D:\www
安装镜像
安装mysql
1.在cmd或powershell输入指令,拉取镜像
docker pull mysql:5.7
2.运行镜像
docker run -d -v D:/apps/docker/mysql57/logs:/var/log/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql57 mysql:5.7
参数说明:
-d 后台运行
-v 目录映射,这里把本地的D:/apps/docker/mysql57/logs映射到/var/log/mysql,方便查看日志
–name 容器名,我这里把版本号也标记上
-p 端口映射 宿主端口:容器端口
-e 设置环境变量,这里是设置mysql的root用户的密码
创建容器成功
3.进入容器
docker exec -it mysql57 /bin/sh
安装vim
apt update && apt-get install vim -y
创建一个测试文件
cd /var/log/mysql
vim test.log #创建一个测试文件
本地同时生成文件,映射成功,以下同理
安装php
1.拉取镜像
docker pull php:7.3-fpm
2.创建并运行容器,连接mysql容器
docker run -d -v D:/www:/var/www/html -p 9000:9000 --link mysql57:mysql --name php73 php:7.3-fpm
–link 链接mysql mysql57:mysql <容器名或id:别名>
3.进入容器
docker exec -ti php56 /bin/bash
安装mysqli和_mysql扩展
docker-php-ext-install pdo_mysql
docker-php-ext-install mysqli
查看已安装扩展
php -m
安装nginx
1.拉取镜像
docker pull nginx:1.12
2.创建并运行容器
docker run -d -p 80:80 -p 443:443 -v D:/www/index:/var/www/html --link php73:phpfpm --name nginx112 nginx:1.12
-p 映射端口 如果有多个端口,则添加多个-p参数
3.安装成功
在本地浏览器输入locahost,安装成功
调试
在本地D:/www/index 位置下新建一份index.php
<?php
phpinfo();
安装vim,进入/etc/nginx/conf.d,修改default.conf文件
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.php index.html index.htm;#添加index.php
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root /var/www/html;#php容器的目录,不是nginx
fastcgi_pass php73:9000;#php容器名
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
重启容器,或者在容器内重启nginx
nginx -s reload
#or
docker restart nginx112
刷新localhost
修改index.php文件
<?php
$link = mysqli_connect('mysql57', 'root', '123456');
if (!$link) {
die('Could not connect: ' . mysqli_error());
}
echo 'Connected successfully';
mysqli_close($link);
?>
刷新localhost
至此全部安装完成