侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

windows10+docker编排实现php多版本共存之自用dnmp开发环境分享

Docker  /  管理员 发布于 2年前   1206

我的自己用的dnmp开发环境一直是php7.4单版本运行环境,后面有php8.1.10最新版镜像出来身为一个phper就要下载下来跑一下,加上我又上传至码云、git上如果有人用了我这个环境可以需要其他版本及多版本运行,所以我就新增了个最新版本php8.1.10-fpm,更多版本也可以按这个套路来

1.png


直接进入步骤

我的docker容器配置目录都在C:\Users\htz\dockers里面

新增文件夹php8 (用来放php8.1.10的容器配置文件)

C:\Users\htz\dockers\php8

拉取、启动一个php8.1.10-fpm的临时容器(复制php配置文件用)

C:\Users\htz>docker pull php:8.1.10-fpm
8.1.10-fpm: Pulling from library/php
a2abf6c4d29d: Pull complete
c5608244554d: Pull complete
2d07066487a0: Pull complete
1b6dfaf1958c: Pull complete
4810cc4e8244: Pull complete
4ec287290423: Pull complete
b6ae9e23cd59: Pull complete
37c34eb562c0: Pull complete
19e84bf7fd0c: Pull complete
4fa88293240f: Pull complete
Digest: sha256:def6bdad9c31a723b903204ab2ec7f013765930026c3203bfdabf81b24b0aedf
Status: Downloaded newer image for php:8.1.10-fpm
docker.io/library/php:php:8.1.10-fpm

C:\Users\htz>docker run -d -v C:\Users\htz\dockers\nginx\www:/var/www/html -p 9000:9000 --name php81 php:8.1.10-fpm
bd1b130b93b3df4682f016714515b993d28ca4e5903226dddd434f761dd111fe

把容器php8里面的etc目录拷贝至宿主机的php8目录中

C:\Users\htz>docker cp php8:/usr/local/etc/ C:\Users\htz\dockers\php8\

如下目录结构:

C:\Users\htz\dockers>cd php8
C:\Users\htz\dockers\php8>dir
 驱动器 C 中的卷没有标签。
 卷的序列号是 82E1-16B0
 C:\Users\htz\dockers\php8 的目录
2022/09/06  16:42    <DIR>          .
2022/09/06  16:42    <DIR>          ..
2022/09/02  05:20    <DIR>          etc
               0 个文件              0 字节
               3 个目录 56,893,440,000 可用字节
               
C:\Users\htz\dockers\php8>cd etc
C:\Users\htz\dockers\php8\etc>dir
 驱动器 C 中的卷没有标签。
 卷的序列号是 82E1-16B0
 C:\Users\htz\dockers\php8\etc 的目录
2022/09/02  05:20    <DIR>          .
2022/09/02  05:20    <DIR>          ..
2022/09/02  05:20             1,195 pear.conf
2022/09/02  05:20    <DIR>          php
2022/09/02  05:20             5,345 php-fpm.conf
2022/09/02  05:20             5,350 php-fpm.conf.default
2022/09/02  05:20    <DIR>          php-fpm.d
               3 个文件         11,890 字节
               4 个目录 56,893,440,000 可用字节


停止并删除掉临时php8.1.10-fpm容器

C:\Users\htz>docker stop php81 && docker rm php81
php81
php81

然后就是正式启动php8.1.10-fpm容器 并映射刚刚cp出来的php8.1.10的配置文件就ok了

我这里就不测了,有兴趣可以翻阅我单独启动php7.4的教程文章。


下一步

直接docker compose编排php8.1.10-fpm版本容器实现跟php7.4版本共存


1.在docker-compose.yml里面添加php81编排信息

(其他我就省略了,有兴趣的看我之前的文章,或者直接点进我的git地址,我会我底部留链接)

#版本号
version: '2.2'
services:
  ...
 nginx:
   image: nginx
   ports:
     - "80:80"
     - "8080:8080"
     - "8081:8081"
   container_name: "nginx-server"
   volumes:
     - C:\Users\htz\dockers\nginx\conf\nginx.conf:/etc/nginx/nginx.conf
     - C:\Users\htz\dockers\nginx\logs:/var/log/nginx
     - C:\Users\htz\dockers\nginx\www:/usr/share/nginx/html
   links:
     - "php74:7.4-fpm"
     - "php81:8.1.10-fpm"
   networks:
     - dev
  php74:
    build:
      context: ./
      dockerfile: php.dockerfile
    #image: php:7.4-fpm
    privileged: true
    ports: 
      - "9000:9000"
    container_name: "php74"
    volumes:
      - C:\Users\htz\dockers\nginx\www:/var/www/html
      - C:\Users\htz\dockers\php\conf\www.conf:/usr/local/etc/php-fpm.d/www.conf
      - C:\Users\htz\dockers\php\conf\php.ini:/usr/local/etc/php/php.ini
    networks:
      - dev
  php81:
    build:
      context: ./
      dockerfile: php81.dockerfile
    #image: php:8.1.10-fpm
    privileged: true
    ports: 
      - "9001:9000"
    container_name: "php81"
    volumes:
      - C:\Users\htz\dockers\nginx\www:/var/www/html
      - C:\Users\htz\dockers\php8\etc:/usr/local/etc
    networks:
      - dev
networks:
  dev:
    driver: bridge
  pro:
    driver: bridge

ps : 

主要端口ports的变化哦


2.新增php81.dockerfile文件夹,安装一下依赖扩展,composer管理工具等

FROM php:8.1.10-fpm

# 安装必要的 php 依赖包
RUN apt-get update \
    && apt-get install -qq git curl libmcrypt-dev libjpeg-dev libpng-dev libfreetype6-dev libbz2-dev \
    && apt-get clean
   
RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" \ 
    && php composer-setup.php --install-dir=/usr/local/bin --filename=composer \ 
    && php -r "unlink('composer-setup.php');"
     
# 安装 php 扩展  mcrypt zip gd
RUN docker-php-ext-install pdo pdo_mysql


3.最后直接在命令提示符cmd中执行构建

在C:\Users\htz\dockers>目录中执行docker-compose命令构建项目

docker-compose up -d
...

就ok了,测试效果截图我放在文章头部了,

有兴趣或想了解更多可以访问下面的git链接

我的自用dnmp码云地址:

https://gitee.com/houtizong/dockers

  • 上一条:
    如何撤销git最后一次提交操作流程步骤
    下一条:
    php语言之非法|敏感关键词检查算法实现示例代码
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 在docker环境中实现Laravel项目执行定时任务和消息队列流程步骤(0个评论)
    • 在MacBook下laravel项目多php版本docker开发环境配置方案(0个评论)
    • 在docker环境中部署docker部署elk架构流程步骤(1个评论)
    • docker compose跟Dockerfile的区别浅析(0个评论)
    • Ubuntu 22.04系统中安装podman流程步骤(1个评论)
    • 近期文章
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2017-11
    • 2020-06
    • 2021-05
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-11
    • 2021-12
    • 2022-01
    • 2022-02
    • 2022-03
    • 2022-07
    • 2022-08
    • 2022-09
    • 2022-11
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-04
    • 2024-03
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客