使用dockerfile搭建lnmp分别172.10.1.2为nginx第二个容器搭建ip为172.10.0.3服务为PHP第三台IP为172.10.0.4服务为 为mysql

时间: 2024-03-23 19:43:55 浏览: 21
好的,以下是使用Dockerfile搭建LNMP环境的步骤: 1. 编写Nginx的Dockerfile文件 在一个空的目录中创建一个名为Dockerfile的文件,并在其中输入以下内容: ```Dockerfile # 指定基础镜像 FROM ubuntu:18.04 # 更新软件源 RUN apt-get update # 安装 nginx RUN apt-get install -y nginx # 将配置文件复制到容器内 COPY nginx.conf /etc/nginx/nginx.conf # 暴露端口 EXPOSE 80 # 启动 nginx 服务 CMD service nginx start && tail -f /var/log/nginx/access.log ``` 2. 编写PHP的Dockerfile文件 在同一目录下创建一个名为Dockerfile.php的文件,并在其中输入以下内容: ```Dockerfile # 指定基础镜像 FROM ubuntu:18.04 # 更新软件源 RUN apt-get update # 安装 PHP RUN apt-get install -y php-fpm php-mysql # 将 PHP 配置文件复制到容器内 COPY php.ini /etc/php/7.2/fpm/php.ini COPY www.conf /etc/php/7.2/fpm/pool.d/www.conf # 暴露端口 EXPOSE 9000 # 启动 PHP 服务 CMD php-fpm7.2 -F ``` 3. 编写MySQL的Dockerfile文件 在同一目录下创建一个名为Dockerfile.mysql的文件,并在其中输入以下内容: ```Dockerfile # 指定基础镜像 FROM mysql:5.7 # 将 MySQL 配置文件复制到容器内 COPY my.cnf /etc/mysql/my.cnf # 暴露端口 EXPOSE 3306 # 启动 MySQL 服务 CMD ["mysqld"] ``` 4. 创建Nginx的配置文件 在同一目录下创建一个名为nginx.conf的文件,并在其中输入以下内容: ```conf user www-data; worker_processes auto; pid /run/nginx.pid; events { worker_connections 768; # multi_accept on; } http { ## # Basic Settings ## sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; server_tokens off; # server_names_hash_bucket_size 64; # server_name_in_redirect off; include /etc/nginx/mime.types; default_type application/octet-stream; ## # SSL Settings ## # ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE # ssl_prefer_server_ciphers on; ## # Logging Settings ## access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; ## # Gzip Settings ## gzip on; # gzip_vary on; # gzip_proxied any; # gzip_comp_level 6; # gzip_buffers 16 8k; # gzip_http_version 1.1; # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; ## # Virtual Host Configs ## server { listen 80; server_name localhost; root /var/www/html; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass 172.10.0.3:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } } ``` 5. 创建PHP的配置文件 在同一目录下创建一个名为php.ini的文件,并在其中输入以下内容: ```ini [PHP] engine = On short_open_tag = On error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT display_errors = On date.timezone = Asia/Shanghai expose_php = Off ``` 在同一目录下创建一个名为www.conf的文件,并在其中输入以下内容: ```ini [www] user = www-data group = www-data listen = 0.0.0.0:9000 pm = dynamic pm.max_children = 5 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 3 php_admin_value[error_log] = /var/log/fpm-php.www.log php_admin_flag[log_errors] = on php_admin_value[memory_limit] = 128M ``` 6. 创建MySQL的配置文件 在同一目录下创建一个名为my.cnf的文件,并在其中输入以下内容: ```conf [mysqld] user=mysql pid-file=/var/run/mysqld/mysqld.pid socket=/var/run/mysqld/mysqld.sock port=3306 basedir=/usr datadir=/var/lib/mysql tmpdir=/tmp lc-messages-dir=/usr/share/mysql log-error=/var/log/mysql/error.log ``` 7. 构建Docker镜像 在终端中进入到该目录,然后执行以下命令来构建Docker镜像: ```bash docker build -t nginx -f Dockerfile . docker build -t php -f Dockerfile.php . docker build -t mysql -f Dockerfile.mysql . ``` 8. 运行Docker容器 执行以下命令来运行Docker容器: ```bash docker run -d --name nginx -p 80:80 nginx docker run -d --name php --link mysql:mysql -v /path/to/php:/var/www/html php docker run -d --name mysql -v /path/to/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=password mysql ``` 在运行容器之后,您可以在浏览器中输入http://localhost 来访问LNMP环境,其中172.10.1.2为nginx,172.10.0.3为PHP,172.10.0.4为MySQL。 希望这些步骤对您有所帮助。

相关推荐

最新推荐

recommend-type

ubuntu 20.04上搭建LNMP环境的方法步骤

主要介绍了ubuntu 20.04上搭建LNMP环境的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
recommend-type

linux+nginx+mysql+php搭建高性能web服务器

LNMP安装,nginx,mysql,php的搭建和优化,构建高性能的php web服务器!
recommend-type

CentOS 6.2 yum安装配置lnmp服务器(Nginx+PHP+MySQL)

CentOS 6.2 yum安装配置lnmp服务器(Nginx+PHP+MySQL)
recommend-type

淘宝基于Nginx高效稳定针对大访问请求的Tengine服务器快速搭建方法

Tengine安装使用和之前分享的LNMP有点类似,你可以参考官网的帮助文档在自己的VPS主机上安装Tengine,也可以直接由原有的Nignx平滑升级到Tengine,本篇文章就来分享一下如何在自己的VPS主机上快速搭建Tengine、MysqL...
recommend-type

新版Linux Shell编程实训(全)20170518.docx

前言 10 场景说明 11 基础知识简介 14 Linux 14 Linux产生与发展 14 Linux特点和优势 15 Shell 16 Shell脚本语言与编译型语言的差异 17 Shell分类 18 Shell使用 19 项目一 初识Linux Shell 20 [学习目标] 20 任务1.1...
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

用 Python 画一个可以动的爱心

好的,我可以帮助您使用Python来绘制一个动态的爱心。您可以使用turtle库来实现。以下是实现代码: ```python import turtle import math # 设置画布和画笔 canvas = turtle.Screen() canvas.bgcolor("black") pencil = turtle.Turtle() pencil.speed(0) pencil.color("red", "pink") pencil.pensize(3) # 定义爱心函数 def draw_love(heart_size, x_offset=0, y_offset=0):
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。