傻瓜式教学Docker 使用docker compose部署 php nginx mysql

这篇具有很好参考价值的文章主要介绍了傻瓜式教学Docker 使用docker compose部署 php nginx mysql。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

首先你可以准备这个三个服务,也可以在docker compose 文件中 直接拉去指定镜像,这里演示的是镜像服务已经在本地安装好了,提供如下:

PHP

# 设置基础镜像
FROM php:8.2-fpm


# install dependencies
RUN apt-get update && apt-get install -y \
        vim \
        libzip-dev \
        libpng-dev \
        libjpeg-dev \
        iputils-ping \
        libmcrypt-dev \
        libmcrypt4 \
        libmhash-dev \
        libmhash2 \
        libxml2 \
        libxml2-dev \
        libbz2-1.0 \
        libbz2-dev \
        libfreetype6-dev \
	&& pecl install redis && docker-php-ext-enable redis \
        && rm -rf /var/lib/apt/lists/*

# install more php extensions
RUN docker-php-ext-configure gd --with-freetype --with-jpeg
RUN docker-php-ext-install zip pdo_mysql gd


# Use the default production configuration
RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"
# 安装 OPcache
RUN docker-php-ext-install opcache

日常用的扩展都有了应该,

RUN docker-php-ext-configure gd --with-freetype --with-jpeg
RUN docker-php-ext-install zip pdo_mysql gd

这两个你也可以移到上面的RUN一同安装

Nginx

# 设置基础镜像
FROM nginx

# 安装一些必要的工具和额外软件包
RUN apt-get update && apt-get install -y \
    vim \
    curl \
    && rm -rf /var/lib/apt/lists/*

Mysql

直接从官方镜像资源中拉去

docker pull mysql

这样你将产生三个镜像

docker布署php+mysql,docker,php,nginx

下面开始利用这三个镜像去构建你的项目容器

1.找到你的项目地址,比如我的:

/home/wanghaiyang/project/customeFrame/fr

docker布署php+mysql,docker,php,nginx

2.准备一个文件夹,用来放你的compse.yml文件(默认情况下,这一组服务的名字就是你这个文件夹名字),

docker布署php+mysql,docker,php,nginx

3.准备一个compose.yml文件:内容如下   

version: '3'

services:
  # PHP 服务
  php_server:
    image: php8.2
    # 使用的 PHP 镜像
    volumes:
      - /home/wanghaiyang/project/customeFrame/fr:/usr/share/nginx/html
    ports:
      - "9000:9000"
    # 其他 PHP 相关配置...
    container_name: "compose-php"
    networks:
       - custome-network
       
  # Nginx 服务
  api_server:
    image: nginx
    # 使用的 Nginx 镜像

    volumes:
      - /home/wanghaiyang/project/customeFrame/fr:/usr/share/nginx/html
      - ./custome_frame.conf:/etc/nginx/conf.d/default.conf
      # 映射本地文件系统中的目录到容器中,确保 Nginx 使用自定义配置

    ports:
      - "8080:80"
      # 将主机的 8080 端口映射到容器的 8080 端口

    depends_on:
      - php_server
      - db_server
      # 定义依赖关系,确保 Nginx 在 PHP 和 MySQL 之后启动
    container_name: "compose-api"
    networks:
       - custome-network
  # MySQL 服务
  db_server:
    image: mysql
    # 使用的 MySQL 镜像

    # 其他 MySQL 相关配置...
    environment:
      MYSQL_ROOT_PASSWORD: wqzbxh@2018$$
      # 设置 MySQL root 用户密码
    ports:
      - 3700:3306
    # 将主机的 3700 端口映射到容器的 3306 端口
    volumes:
      - ./db_data:/var/lib/mysql
    container_name: "compose-db"
    networks:
       - custome-network

  # Adminer 服务(用于管理 MySQL 数据库)
  adminer:
    image: adminer
    # 使用的 Adminer 镜像

    restart: always
    ports:
      - 3701:8080
      # 将主机的 3701 端口映射到容器的 8080 端口
    container_name: "compose-adminer"
networks:
   custome-network:

    

再给一个custome_frame.conf文件,

server {
    listen       80;
    listen  [::]:80;
    server_name  localhost;
    root   /usr/share/nginx/html;
    # 配置根目录和默认文件
    location / {
  
        index  index.php index.html index.htm;
    }

    # 如果文件不存在,重写URL到index.php
    if (!-e $request_filename){
        rewrite ^(.*)$ /index.php last;
        break;
    }

    # 将 PHP 脚本通过 FastCGI 传递到监听在 127.0.0.1:9000 上的服务器
    location ~ \.php$ {
       fastcgi_pass   php_server:9000;
       fastcgi_index  index.php;
       fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
       fastcgi_param  SCRIPT_NAME      $fastcgi_script_name;
       include        fastcgi_params;
    }

    # 禁止访问 .htaccess 文件,如果 Apache 的文档根与 nginx 的文档根相符
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}

这个时候已经全部结束了

adminer 这个东西是 管理数据库的,前身是phpAdmin的影子,它长这个样子

docker布署php+mysql,docker,php,nginx然后在你的当前目录直接就

docker compose up -d

docker布署php+mysql,docker,php,nginx

docker布署php+mysql,docker,php,nginx

然后就成功了,我们这个时候访问一下测试一下

docker布署php+mysql,docker,php,nginx

OK没问题,说明Nginx 已经和 PHP 正常通讯了,我们再来看一下数据库请求;

证明也是没问题的

docker布署php+mysql,docker,php,nginx

上面的基本上及参数一换就能用文章来源地址https://www.toymoban.com/news/detail-790281.html

到了这里,关于傻瓜式教学Docker 使用docker compose部署 php nginx mysql的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 在 CentOS 7.4 上使用 Docker极速部署 LNMP (Linux, Nginx, MySQL, PHP) 环境和 WordPress

    前置CentOS7条件: 关闭防护墙: setenforce = 0 systemctl stop firewalld 1. 安装 Docker* 如果你的系统中还没有安装 Docker,可以使用以下命令进行安装:   sudo yum install docker 启动 Docker 服务并设置开机自启: sudo systemctl start docker sudo systemctl enable docker 2. 安装 Docker Compose Docker Compose 可以让

    2024年01月17日
    浏览(43)
  • Docker部署nginx+php环境,简单可用!

    第一步: 安装Docker 访问下面地址,根据你的需要下载安装docker运行环境。 下载docker desktop https://www.docker.com/ 如果你是Windows、macOS(Intel/M1)、Linux桌面OS,都可以下载到对应版本进行安装,相对命令行方式,更加简单方便。 安装完成后,运行docker desktop,显示如下界面: 在任

    2024年02月07日
    浏览(36)
  • docker 部署 nginx+php+mysql 环境

    记录一下docker部署web服务器流程。nginx,mysql,php不同的版本配置内容可能会不同。 docker常用命令 目录结构 创建目录 运行PHP容器 php容器内容目录结构如下: PHP5.4升级后,php.ini-dist不见了,出现了php.ini-developmen和php.ini-production。 php.ini-development 对应于 php.ini-dist,适合开发测

    2024年04月24日
    浏览(72)
  • 使用docker-compose.yml快速搭建开发、部署环境(nginx、tomcat、mysql、jar包、各种程序)以及多容器通信和统一配置

    image 镜像名称,可去镜像市场查找自己需要的 hostname 容器内服务名 container_name 容器名 volumes 可以把自己电脑的路径映射到容器中的文件夹中 networks 写同一个网络可以让容器之间进行通信 启动 在项目根目录的命令行中输入 docker-compose up 停止 在项目根目录的命令行中输入 d

    2024年02月12日
    浏览(45)
  • Docker部署php运行环境(php-fpm+nginx)

    前言 如果使用docker去部署一套php的运行环境,我们需要构建出nginx、php-fpm两个容器,nginx通过fast_cgi协议去转发php-fpm中的端口,从而实现web server的搭建,接下来以php的laravel框架为演示例子。 部署php-fpm 第一步 编写php-fpm镜像的Dockerfile: ./Dockerfile 第二步 配置Crontab定时任务:

    2024年02月06日
    浏览(50)
  • Docker-Compose编排Nginx1.25.1+PHP7.4.33+Redis7.0.11环境

    实践说明:基于RHEL7(CentOS7.9)部署docker环境(23.0.1、24.0.2),编排也可应用于RHEL7-9(如AlmaLinux9.1),但因为docker的特性,适用场景是不限于此的。 文档形成时期:2017-2023年 因系统或软件版本不同,构建部署可能略有差异,但本文未做细分,对稍有经验者应不存在明显障碍。 因软件

    2024年01月22日
    浏览(48)
  • Docker的配置和部署,并搭建php和nginx环境

    服务器环境:CentOS 7.6 说下体验: 通过安装进度还是有些报错出现的,但是一向“兼容不错的宝塔”还是对他抱有一线希望。 最后还是安装成功了。  装好了,如何使用? Docker 是基于命令行使用的,那现在通过一些实际问题去使用一些命令! 1.首先查看是否安装成功。通过

    2024年02月09日
    浏览(43)
  • 用MacBook实操:docker本地部署mysql+php+nginx坏境

    大家好,我拿出我的macbook,带着大家实操用docker部署mysql+php+nginx环境。 之前的小白实操搭建Nginx1.2.0+PHP7.0+MySQL5.7+Thinkphp5项目,看这篇就够了,欢迎阅读。 之前的是服务器上配置环境,现在在mac本地搭建全栈开发环境。 目录 1.docker 1.1docker下载: 1.2配置docker下载镜像 1.3 在本地

    2024年02月09日
    浏览(34)
  • Docker Ubuntu php nginx mysql redis 开发环境部署教程

    点击: ubuntu 22.04 配置多版本 php nginx mysql redis 超简单教程

    2024年02月08日
    浏览(46)
  • 使用docker-compose做nginx服务

    目录 Docker Compose 可以轻松、高效的管理容器, 它是一个用于定义和运行多容器 Docker 的应用程序工具. 除了docker Compose还有一个技术k8s也能实现快速的部署。 可以一键启动,一键停止,非常方便 一.上传nginx配置文件 二.docker-compose安装与配置 1.上传文件 2.添加可执行权限 3.创建

    2024年02月10日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包