热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

docker构建简单的PHP+MySQL+nginx+Redis环境,以及docker内PHP扩展安装。

服务器环境(centos7.4)2.docker安装sudoyum-yinstalldocker-cedockerversion查看docker版本安装mysqlnginxredi






  1. 服务器环境(centos7.4)


    2.docker 安装

    sudo yum -y install docker-ce
    docker version //查看docker版本


  2. 安装mysql nginx redis php(非root用户请使用sudo命令)

    第一步:拉取docker中镜像

    docker pull php:7.2-fpm
    docker pull nginx
    docker pull mysql:5.7
    docker pull redis:3.2
    docker images

    第二步:建立容器

    # 自有docker mysql 容器
    docker run --name myDb -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
    # 自有docker redis 容器
    docker run --name myRedis -p 6379:6379 -d redis:3.2
    # 自有docker php 容器
    docker run -d -p 9000:9000 --name myPhp -v /usr/html:/var/www/html -v /etc/myPhp:/usr/local/etc/php --link myDb:myDb --link myRedis:myRedis --privileged=true php:7.2-fpm
    # 自有docker nginx 容器
    docker run \
    --name myNginx -d \
    -p 80:80 -p 443:443 \
    -v /usr/html:/usr/share/nginx/html \
    -v /etc/myNginx/nginx.conf:/etc/nginx/nginx.conf:ro \
    -v /etc/myNginx/servers:/etc/nginx/servers \
    -v /etc/myNginx/letsencrypt:/etc/nginx/letsencrypt:rw \
    -v /var/log/myNginx:/var/log/nginx \
    --link myPhp:myPhp --privileged=true \
    nginx

    备注:-v 参数为挂载目录,即将容器内部目录软连到宿主机目录,对于容器的配置和日志挂载可以方便直接在宿主机查看,当然不挂载也可以进入容器内部查看。进入容器命令docker exec -ti containerID /bin/bash

    有两个坑:1.nginx挂载配置目录时nginx.conf最好提前在宿主机对应目录下添加好(因为nginx.conf是个文件非目录,docker挂载会提示一些问题)2. php挂载php.ini时也同样在宿主机中先配置好。后面安装php扩展会用到


第三步. 启动容器

# 查看容器
docker ps -a
# 启动容器
docker start containId

  1. docker php 扩展安装

    我使用pe c l安装

    # 进入php容器
    docker exec -ti myPhp /bin/bash

    使用pecl安装扩展命令, XXX为扩展名

    pecl install xxxx && docker-php-ect-enable xxx

    坑1: 我安装mongodb扩展时出现pecl拉取成功,docker-php-ext-enable脚本命令添加扩展失败的问题。解决如下

    php.ini添加so文件扩展, 并将so 文件从/usr/local/lib/php/extension/o-debug-non-zts-20170718/ 中复制到 对应目录下 /usr/local/lib/php/pecl/20170718下。具体目录路径根据自己环境来看。此处php.ini在容器生成时已挂载,不需要在容器内部再添加新的php.ini


  2. phpinfo()查看环境吧。

    参考:博客:docker 从入门到自动化构建 PHP 环境




docker
php


推荐阅读
  • docker镜像重启_docker怎么启动镜像dock ... [详细]
  • 本文详细介绍了如何在云服务器上配置Nginx、Tomcat、JDK和MySQL。涵盖从下载、安装到配置的完整步骤,帮助读者快速搭建Java Web开发环境。 ... [详细]
  • 全能终端工具推荐:高效、免费、易用
    介绍一款备受好评的全能型终端工具——MobaXterm,它不仅功能强大,而且完全免费,适合各类用户使用。 ... [详细]
  • Nginx 反向代理与负载均衡实验
    本实验旨在通过配置 Nginx 实现反向代理和负载均衡,确保从北京本地代理服务器访问上海的 Web 服务器时,能够依次显示红、黄、绿三种颜色页面以验证负载均衡效果。 ... [详细]
  • 深入解析Serverless架构模式
    本文将详细介绍Serverless架构模式的核心概念、工作原理及其优势。通过对比传统架构,探讨Serverless如何简化应用开发与运维流程,并介绍当前主流的Serverless平台。 ... [详细]
  • 本文详细介绍了一种通过MySQL弱口令漏洞在Windows操作系统上获取SYSTEM权限的方法。该方法涉及使用自定义UDF DLL文件来执行任意命令,从而实现对远程服务器的完全控制。 ... [详细]
  • 本文详细介绍了 phpMyAdmin 的安装与配置方法,适用于多个版本的 phpMyAdmin。通过本教程,您将掌握从下载到部署的完整流程,并了解如何根据不同的环境进行必要的配置调整。 ... [详细]
  • 本文深入探讨了MySQL中常见的面试问题,包括事务隔离级别、存储引擎选择、索引结构及优化等关键知识点。通过详细解析,帮助读者在面对BAT等大厂面试时更加从容。 ... [详细]
  • 本文详细介绍了如何解压并安装MySQL集群压缩包,创建用户和组,初始化数据库,配置环境变量,并启动相关服务。此外,还提供了详细的命令行操作步骤和常见问题的解决方案。 ... [详细]
  • NFS(Network File System)即网络文件系统,是一种分布式文件系统协议,主要用于Unix和类Unix系统之间的文件共享。本文详细介绍NFS的配置文件/etc/exports和相关服务配置,帮助读者理解如何在Linux环境中配置NFS客户端。 ... [详细]
  • 本文详细介绍了 Kubernetes 集群管理工具 kubectl 的基本使用方法,涵盖了一系列常用的命令及其应用场景,旨在帮助初学者快速掌握 kubectl 的基本操作。 ... [详细]
  • 本文详细介绍了优化DB2数据库性能的多种方法,涵盖统计信息更新、缓冲池调整、日志缓冲区配置、应用程序堆大小设置、排序堆参数调整、代理程序管理、锁机制优化、活动应用程序限制、页清除程序配置、I/O服务器数量设定以及编入组提交数调整等方面。通过这些技术手段,可以显著提升数据库的运行效率和响应速度。 ... [详细]
  • 本文深入探讨了SQL数据库中常见的面试问题,包括如何获取自增字段的当前值、防止SQL注入的方法、游标的作用与使用、索引的形式及其优缺点,以及事务和存储过程的概念。通过详细的解答和示例,帮助读者更好地理解和应对这些技术问题。 ... [详细]
  • NTP服务器配置详解:原理与工作模式
    本文深入探讨了网络时间协议(NTP)的工作原理及其多种工作模式,旨在帮助读者全面理解NTP的配置参数和应用场景。NTP是基于RFC 1305的时间同步标准,广泛应用于分布式系统中,确保设备间时钟的一致性。 ... [详细]
  • 探讨在开发、学习和实验过程中,使用 VMware 和 Docker 的优劣,帮助用户根据具体需求做出最佳选择。 ... [详细]
author-avatar
欧阳羽昌53
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有