- 创建nginx容器,挂载配置文件和网站文件。
docker run -d --name docker-nginx --network my_docker_net -v D:\docker\nginx:/usr/share/nginx/html -v nginx_conf:/etc/nginx -p 80:80 nginxdocker run -d --name docker-nginx --network my_docker_net -v D:\docker\nginx\data:/usr/share/nginx/html -v D:\docker\nginx\config:/etc/nginx/conf.d -p 80:80 nginx
windows卷挂载目录为:
\\wsl$\docker-desktop\mnt\docker-desktop-disk\data\docker\volumes\nginx_conf\_data
- 创建mysql容器
docker run --name docker_mysql --network my_docker_net -e MYSQL_ROOT_PASSWORD=123456 -v D:\docker\mysql_data:/var/lib/mysql -p 3307:3306 -d mysql
- 创建php容器
docker run -d --name docker-php-7.4-fpm --network my_docker_net -v D:\docker\nginx\data:/var/www/html -p 9000:9000 php:7.4-fpm
- 配置nginx
server {listen 80;listen [::]:80;server_name localhost;#access_log /var/log/nginx/host.access.log main;location / {root /usr/share/nginx/html;index 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;fastcgi_pass docker-php-7.4-fpm:9000;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;#}
}
- 安装pdo,进入容器,执行
docker-php-ext-install pdo pdo_mysql
,重启容器
docker exec -it docker-php-7.4-fpm bash
- 新建php文件
<?php$servername = "docker_mysql:3306"; // 数据库服务器地址$username = "root"; // 数据库用户名$password = "123456"; // 数据库密码$database = "hyperf_test"; // 数据库名try {$pdo = new PDO("mysql:host=" . $servername. ";dbname=" . $database, $username, $password);//创建一个pdo对象$pdo->exec("set names 'utf8'");echo "mysql连接成功"; }catch(PDOException $e) {echo "mysql连接失败:error=> " . $e->getMessage();}$pdo = null;
- D:\docker\nginx\data下新建目录tp6-demo
D:\docker\nginx\data> composer create-project topthink/think=6.1.* tp6-demo
- 访问http://localhost/tp6-demo/public/index.php
- 创建redis容器
docker run --name docker_redis --network my_docker_net -d -p 6379:6379 -v D:\docker\redis:/data -v redis_conf:/etc/redis/redis.conf redis
docker cp docker_redis:/etc/redis/redis.conf d:\docker\redis\config
修改D:\docker\redis\config\redis.conf\redis.conf
bind 0.0.0.0
port 6379
dir /data
dbfilename dump.rdb
# 设置 Redis 密码
requirepass 123456
appendonly yes# RDB 持久化配置# 900 秒(15 分钟)内至少有 1 个键被修改时触发保存
save 900 1 # 300 秒(5 分钟)内至少有 10 个键被修改时触发保存
save 300 10 # 60 秒(1 分钟)内至少有 10000 个键被修改时触发保存
save 60 10000
删除旧容器,建立新的容器
docker rm -f 21f
docker run --name docker_redis --network my_docker_net -d -p 6379:6379 -v D:\docker\redis\data:/data -v D:\docker\redis\config\redis.conf\redis.conf:/etc/redis/redis.conf redis redis-server /etc/redis/redis.conf