宿主机创建映射目录
#MySQL
D:\DockerContainer\mysql\conf
D:\DockerContainer\mysql\data
D:\DockerContainer\mysql\logs
#Redis
D:\DockerContainer\redis\conf
D:\DockerContainer\redis\data
#PHP
D:\DockerContainer\php\conf
D:\DockerContainer\php\logs
#Nginx
D:\DockerContainer\mysql\conf
D:\DockerContainer\mysql\data
D:\DockerContainer\mysql\logs
#项目目录
D:\DockerContainer\www
1.安装MySQL
下载镜像
docker pull mysql:latest
创建容器
docker run -itd --name mysql -p 3306:3306 -v D:\DockerContainer\mysql/conf:/etc/mysql/conf.d/ -v D:\DockerContainer\mysql/data:/var/lib/mysql -v D:\DockerContainer\mysql/logs:/var/log/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql
2.安装Redis
下载镜像
docker search redis
创建容器
docker run -p 6379:6379 --name redis -v D:/DockerContainer/redis/conf/redis.conf:/etc/redis/redis.conf -v D:/DockerContainer/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
3.安装PHP
下载镜像
docker pull php:7.4-fpm
创建容器
docker run --name php7.4-fpm -v D:\DockerContainer\www:/www -v D:\DockerContainer\php\conf/php.ini:/usr/local/etc/php/php.ini -v D:\DockerContainer\php\conf/php-fpm.conf:/usr/local/etc/php-fpm.d/php-fpm.conf --link mysql:mysql --link redis:redis -d php:7.4-fpm
4.安装Nginx
下载镜像
docker pull nginx:latest
创建测试容器
docker run --name nginx-test -p 8080:80 -d nginx
复制测试容器的配置文件到本地
docker cp nginx-test:/etc/nginx/conf.d/default.conf D:\DockerContainer\nginx\conf.d/
docker cp nginx-test:/usr/share/nginx/html/index.html D:\DockerContainer\www
docker cp nginx-test:/etc/nginx/nginx.conf D:\DockerContainer\nginx\conf
删除测试容器
docker stop nginx-test
docker rm nginx-test
创建新容器
docker run --name nginx -p 8080:80 -v D:\DockerContainer\nginx\conf:/etc/nginx/conf -v D:\DockerContainer\nginx\conf.d:/etc/nginx/conf.d -v D:\DockerContainer\nginx\logs:/var/log/nginx -v D:\DockerContainer\www:/usr/share/nginx/html -d --link php7.4-fpm:php nginx
修改配置文件default.conf
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /www/$fastcgi_script_name;
include fastcgi_params;
}
}
D:\DockerContainer\www目录下创建index.php文件,输出phpinfo();
访问浏览器

5.安装Redis,mysql扩展
#redis扩展
curl -L -o /tmp/redis.tar.gz https://github.com/phpredis/phpredis/archive/3.1.3.tar.gz
tar xfz /tmp/redis.tar.gz
rm -r /tmp/redis.tar.gz
mkdir -p /usr/src/php/ext
mv phpredis-3.1.3 /usr/src/php/ext/redis
docker-php-ext-install redis
#
docker-php-ext-install pdo_mysql
docker-php-ext-install mysql
docker-php-ext-install mysqli
6.测试
在index.php文件
<?php
$servername = "mysql";
$username = "root";
$password = "root";
// 创建连接
$mysql_conn = new mysqli($servername, $username, $password);
// 检测连接
if ($mysql_conn->connect_error) {
die("连接失败: " . $mysql_conn->connect_error);
}
echo "mysql 连接成功";
echo "<br>";
$redis=new Redis();
$redis_conn=$redis->connect('redis','6379');
if($redis_conn){
echo "redis 连接成功";
}
?>

网友评论