当前位置: 首页 > article >正文

docker nginx

  1. 创建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 nginx

docker 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
  1. 创建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
  1. 创建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
  1. 配置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;
    #}
}


  1. 安装pdo,进入容器,执行 docker-php-ext-install pdo pdo_mysql,重启容器
docker exec -it docker-php-7.4-fpm bash
  1. 新建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;
  1. D:\docker\nginx\data下新建目录tp6-demo
D:\docker\nginx\data> composer create-project topthink/think=6.1.* tp6-demo
  1. 访问http://localhost/tp6-demo/public/index.php
  2. 创建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

http://www.kler.cn/a/590567.html

相关文章:

  • livekit部署并结合nginx
  • 24.pocsuite3:开源的远程漏洞测试框架
  • FPGA multiboot 方案
  • 简述下npm,cnpm,yarn和pnpm的区别,以及跟在后面的-g,--save, --save-dev代表着什么
  • 前端性能优化回答思路
  • 【VUE】ant design vue实现表格table上下拖拽排序
  • 使用 LangGraph 构建智能客服代理系统(DeepSeek 版)
  • 如何启用 HTTPS 并配置免费的 SSL 证书
  • MySQL DBA 运维常用命令
  • STC89C52单片机学习——第22节: LED点阵屏显示图形动画
  • Spring Boot整合JWT 实现双Token机制
  • Maven核心包:maven-resolver-api
  • Netty基础—5.Netty的使用简介
  • 小程序主包方法迁移到分包-调用策略
  • HTB 学习笔记 【中/英】《前端 vs. 后端》P3
  • API接口自动化学习总结
  • 共享 IP 与独立 IP:长期邮件营销的优劣比较
  • 解决QT_Debug 调试信息不输出问题
  • 【笔记】SQL进阶教程(第二版)
  • SpringBoot3+SaToken+JWT:轻量化权限认证实战指南