Docker配置LNMP环境

目录规划

  • 根目录下新建www目录,集中存放相关的配置文件和web文件

Mysql

  • 从dockerhub拉取mysql镜像
    $ docker pull mysql
  • 实例化镜像,启动一个mysql容器
    $ docker run -p 3306:3306 --name mysql -v /www/mysql/conf:/etc/mysql/conf.d -v /www/mysql/logs:/logs -v /www/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d --privileged=true mysql
    -p 端口映射(主机:容器)
    -v 目录挂载(主机:容器)
    -e MYSQL_ROOT_PASSWORD=123456:初始化mysql root 用户密码
    –privileged 使容器内root拥有真正的的root权限

PHP-FPM

  • 从dockerhub拉取PHP-FPM镜像
    $ docker pull php:fpm
    $ docker run --name php-fpm -p 9000:9000 --link mysql:mysql -v /www/html:/var/www/html -v /www/php/www.conf:/usr/local/etc/php-fpm.d/www.conf -v /www/php/php.ini:/usr/local/etc/php/php.ini -d php:fpm
    找到容器中php.ini-production的位置
$ docker exec -it php-fpm bash
$ cd /usr/src/
$ xz -d php.tar.xz
$ tar -xvf  php.tar

复制到本地
$ docker cp php-fpm:/usr/src/php-7.3.10/php.ini-production php.ini

Nginx

  • 从dockerhub拉取nginx镜像并实例化
    $ docker pull nginx
    $ docker run --name nginx -p 80:80 --link php-fpm -v /www/html:/usr/share/nginx/html -v /www/nginx/default.conf:/etc/nginx/conf.d/default.conf -d nginx

此时web服务已可以正常运行,并可解析php文件。如果要安装ThinkPHP或phpcms等,还要安装相关的php扩展,因此需要对官方镜像进行重新编译,下面是用到的Dockerfile,这个文件放在/www目录下

PHP-FPM支持ThinkPHP、phpcms
v1.0

Base images
FROM php:7.3.10-fpm

MAINTAINER moore "lee_moore@foxmail.com"

设置时区
ENV TZ=Asia/Shanghai
RUN echo $TZ > /etc/timezone

将主机配置文件上传至镜像中
ADD php/www.conf   /usr/local/etc/php-fpm.d/www.conf
ADD php/php.ini    /usr/src/php/php.ini

更换中科大源(非必须)
RUN echo "deb http://mirrors.ustc.edu.cn/debian stable main contrib non-free\ndeb http://mirrors.ustc.edu.cn/debian stable-updates main contrib non-free" > /etc/apt/sources.list
安装相关扩展
RUN apt update && apt install -y \
        libfreetype6-dev \
        libjpeg62-turbo-dev \
        libpng-dev \
    && docker-php-ext-install -j$(nproc) iconv \
    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
    && docker-php-ext-install -j$(nproc) gd \
    && docker-php-ext-install pdo_mysql \
    && docker-php-ext-install mysqli

#开放9000端口
EXPOSE 9000

删除原来的php-fpm容器,已新编译的php-fpm镜像新启动一个容器

$ cd /www
$ docker build -t php-fpm:v1 ./
$ docker run --name php-fpm -p 9000:9000 --link mysql:mysql -v /www/html:/var/www/html -v /www/php/www.conf:/usr/local/etc/php-fpm.d/www.conf -v /www/php/php.ini:/usr/local/etc/php/php.ini -d php:fpm:v1

此时LNMP环境部署完毕

Original: https://www.cnblogs.com/captainmoore/p/11670642.html
Author: captainmoore
Title: Docker配置LNMP环境

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/607742/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 算法小技巧 — 链表

    一、快慢指针 1、核心思想 【核心思想:】 采用双指针完成,一个指针永远比另一个指针稍快一点。 【常见案例:】 找到单链表的中间节点    环形链表 【单链表结构:】 class …

    Linux 2023年6月14日
    080
  • 如何逃离框架孤井?

    前言 前面我发过一篇文章,脱离了Spring询问大家能不能继续开发,结果文章下面的评论和回复都告诉我大家伙的基础打得很牢固,该咋写还是咋写。看得我在这内卷的时代瞬间躺平。 那么今天…

    Linux 2023年6月13日
    099
  • NoteOfMySQL-12-备份与还原

    一、备份概述 备份不是单纯的复制数据,因为这样无法留下历史记录和系统的DNS或Registry等信息。完整的备份应包括自动化的数据管理与系统的全面恢复,即备份=复制+管理。 1. …

    Linux 2023年6月14日
    079
  • 雷霆传奇H5光柱版游戏详细图文架设教程

    前言 想体验经典传奇的热血PK吗?想体验满级VIP的尊贵吗?想体验一刀99999的爽快吗?各种极品炫酷时装、坐骑、翅膀、宠物通通给你,就在光柱版雷霆传奇H5! 本文讲解雷霆传奇架设…

    Linux 2023年6月7日
    0144
  • AIX系统NTP同步配置

    前言 当AIX系统的本地时间与时间服务器授出的标准时间误差大于±1000秒时。xntpd服务将无法同步时间并变得无法正常工作,请进行ntp配置前,先修改AIX系统的本地时间,尽量和…

    Linux 2023年6月6日
    0120
  • 根据温度、气压计算海拔高度

    基本概念 标准大气压:表示气压的单位,习惯上常用水银柱高度。例如,一个标准大气压等于760毫米高的水银柱的重量,它相当于一平方厘米面积上承受1.0336公斤重的大气压力。由于各国所…

    Linux 2023年6月8日
    0102
  • 我可以不在校园

    我在校园自动打卡,仅作学习使用。 我在校园自动打卡,仅作学习使用 直达电梯:我可以不在校园 posted @2021-11-19 17:38 DominicKK 阅读(258 ) …

    Linux 2023年6月8日
    0115
  • MySQL — 数据查询语言

    DQL 全称 Data Query Language。数据查询语言,用来查询数据库中表的记录。 语法: select 查询列表(字段、常量、函数、表达式) from 表名; 字段别…

    Linux 2023年6月8日
    094
  • RabbitMQ超详细安装教程(Linux)

    镜像下载、域名解析、时间同步请点击阿里云开源镜像站 1、简介 官网:https://www.rabbitmq.com/ RabbitMQ是一个开源的遵循AMQP协议实现的基于Erl…

    Linux 2023年5月27日
    0176
  • 节约内存:Instagram的Redis实践(转)

    1.M emcached 内存Key-Value Cache Redis 内存数据库 四,节约内存:Instagram的Redis实践 Instagram可以说是网拍App的始祖级…

    Linux 2023年5月28日
    0100
  • zabbix5.0报错PHP时区未设置(配置参数”date.timezone”)

    解决办法 : 1、编辑文件/etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf,取消注释并设置为所在地时区 vim /etc/opt/rh/rh-p…

    Linux 2023年6月7日
    092
  • Java实现栈

    package algorithm; import java.util.Arrays;import java.util.Iterator; /** @author Administ…

    Linux 2023年6月14日
    0120
  • redis五种数据类型及使用场景

    一、Redis简介Redis 是一个开源的使用 C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库。它可以用作数据库、缓存和消息中间件。它支持的数据类…

    Linux 2023年5月28日
    090
  • ASP.NET Core 发布到Linux需要注意的地方

    ☆☆☆ 共同学习,欢迎拍砖;转载请注明出处,谢谢。欢迎关注我的公众号:闲聊编程。☆☆☆ Original: https://www.cnblogs.com/FlyLolo/p/11…

    Linux 2023年6月7日
    095
  • Redis 配置文件

    http://blog.csdn.net/tonysz126/article/details/8280696/ 2.1 Redis配置文件 为了对Redis的系统实现有一个直接的认…

    Linux 2023年5月28日
    0117
  • 网络安全常见术语

    黑客帽子之分 白帽 白帽:亦称白帽黑客、白帽子黑客,是指那些专门研究或者从事网络、计算机技术防御的人,他们通常受雇于各大公司,是维护世界网络、计算机安全的主要力量。很多白帽还受雇于…

    Linux 2023年6月14日
    095
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球