找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 23|回复: 0

Docker中安装php+mysql+nginx 简易版

[复制链接]

2

主题

0

回帖

8

积分

新手上路

积分
8
发表于 2023-6-24 18:57:24 | 显示全部楼层 |阅读模式
IP 地址(本地测试环境):192.168.0.33
操作系统:Armbian 5.15.83   
镜像操作:
  • docker pull php:7.4-fpm
  • docker pull nginx:latest
  • docker pull mariadb:10.4
  • docker pull phpmyadmin

[color=rgb(51, 102, 153) !important]复制代码

文件操作:
  • mkdir -p /home/docker/nginx/html /home/docker/nginx/conf.d /home/docker/mysql/data /home/docker/mysql/conf /home/docker/mysql/log /home/docker/nginx/html/phpmyadmin /home/docker/php/conf.d
  • cp /home/files/nginx.conf /home/docker/nginx/conf.d
  • cp /home/files/my_mariadb.cnf /home/docker/mysql/conf
  • cp /home/files/my_php.ini /home/docker/php/conf.d

[color=rgb(51, 102, 153) !important]复制代码

1. 部署 PHP
    1) 部署环境
    2) 运行容器
  • docker run --name php-7.4-fpm -p 9000:9000\
  •                     -v /home/docker/nginx/html:/var/www/html\
  •                      -v /home/docker/php/conf.d:/usr/local/etc/php/conf.d\
  •                     --privileged=true\
  •                     --restart=always\
  •                     -d php:7.4-fpm

[color=rgb(51, 102, 153) !important]复制代码

       参数说明:
            --name php-7.4-fpm:将容器命名为 php-7.4-fpm。
            -p 9000:9000:端口进行映射,将本地 9000 端口映射到容器内部的 9000 端口。
            -v:将本地文件夹 /home/docker/nginx/html 与容器文件夹 /var/www/html 挂载。在 /home/docker/nginx/html 目录下,创建 info.php 文件,内容如下:
  • <?php
  • echo "Nginx/PHP7.4 - info.php";
  • ?>

[color=rgb(51, 102, 153) !important]复制代码

           --privileged=true:使用该参数,容器内的 root 拥有真正的 root 权限。否则,容器内的 root 只是外部的一个普通用户权限。
            -d:设置容器在后台一直运行。
            php:7.4-fpm: 镜像:tag。

    4) 使用 docker-php-ext-install 安装扩展
        一般需要安装一些 PHP 扩展,包括一些比较核心的拓展 gd、mysql_pdo、redis 客户端等,本文后面会使用 MariaDB,需要安装 MySQL 相关的扩展。
  • docker exec -it php-7.4-fpm /bin/bash
  • find / -name docker-php-ext-install
  • /usr/local/bin/docker-php-ext-install pdo_mysql mysqli
  • exit
  • docker restart php-7.4-fpm

[color=rgb(51, 102, 153) !important]复制代码

      
2. 部署 Nginx + php-fpm      
         运行容器
  • docker run --name nginx-php7.4 -p 80:80\
  •                     -v /home/docker/nginx/html:/usr/share/nginx/html\
  •                     -v /home/docker/nginx/conf.d:/etc/nginx/conf.d\
  •                     --privileged=true\
  •                     --link php-7.4-fpm\
  •                     --restart=always\
  •                     -d nginx

[color=rgb(51, 102, 153) !important]复制代码

       参数说明:
            --name nginx-php7.4:将容器命名为 nginx-php7.4。
            -p 8888:80:端口进行映射,将本地 8888 端口映射到容器内部的 80 端口。
            -v:将本地文件夹与容器文件夹挂载。
            --privileged=true:使用该参数,容器内的 root 拥有真正的 root 权限。否则,容器内的 root 只是外部的一个普通用户权限。
            -d:设置容器在后台一直运行。
            nginx: 这里表示 nginx:latest,镜像:tag。

3. 部署 MariaDB(MySQL)
    1) 部署环境
    2) 运行 MariaDB 容器
  • sudo docker run --name mariadb-10.4 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456\
  •            -v /home/mysql/conf:/etc/mysql/conf.d\
  •            -v /home/docker/mysql/data:/var/lib/mysql\
  •            -v /home/mysql/log:/var/log/mysql\
  •              --restart=always\
  •             -d mariadb:10.4

[color=rgb(51, 102, 153) !important]复制代码

         参数说明:密码在phpmyadmin 部署后去更改 root %及root @ localhost
          -p 3306:3306:映射容器服务的 3306 端口到宿主机的 3306 端口。外部可以直接通过宿主机 ip:3306 访问到 mariadb 的服务。
              MYSQL_ROOT_PASSWORD=123456:设置 mariadb 服务 root 用户的密码。
    注:
      MariaDB (MySQL) 的默认配置文件是 /etc/mysql/my.cnf 文件。如果想要自定义配置,在 /etc/mysql/conf.d 目录中创建 *.cnf 文件。新建的文件可以任意起名,只要保证后缀名是 cnf 即可。新建的文件中的配置项可以覆盖 /etc/mysql/my.cnf 中的配置项。

4. 配置 phpMyAdmin
    1) 配置环境
  • docker run -d --name phpmyadmin -e PMA_HOST=192.168.0.31 -e PMA_PORT=3306 -p 8080:80 phpmyadmin

[color=rgb(51, 102, 153) !important]复制代码

浏览器访问 http://192.168.0.33/phpmyadmin,页面显示 phpMyAdmin 主页。

解压目录/home/files





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Home!

GMT+8, 2025-12-6 13:39 , Processed in 0.019277 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表