Docker安装LNMP

文章详细介绍了如何使用Dockerrun命令以及docker-compose来分别安装和配置nginx、php-fpm和mysql服务,包括拉取镜像、挂载卷、修改配置文件、安装MySQL扩展以及编写测试页面等步骤。
摘要由CSDN通过智能技术生成

目录

使用Docker run命令进行安装

使用docker-compose进行安装


使用Docker run命令进行安装

拉取镜像你也可以直接run

docker pull nginx:1.23.1
docker pull mysql:5.7
docker pull php:7.4.26-fpm

 安装nginx 这次只是为了将nginx容器实例中的配置文件cp出来

docker run --name nginx --restart=always -d -p 80:80 nginx:1.23.1

mkdir -p /usr/local/nginx/{conf,log,html,conf.d}

docker cp nginx:/etc/nginx/nginx.conf /usr/local/nginx/conf/
docker cp nginx:/etc/nginx/conf.d /usr/local/nginx/conf/
docker cp nginx:/usr/share/nginx/html /usr/local/nginx/
docker cp nginx:/var/log/nginx /usr/local/nginx/log

 修改nginx配置文件

cd /usr/local/nginx/conf/conf.d

vi default.conf
location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm index.php;
    }
location ~ \.php$ {
        fastcgi_pass   php-fpm:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /www/$fastcgi_script_name;
        include        fastcgi_params;
    }
docker rm -f nginx

安装MySQL

docker run --name mysql -p 3306:3306 --privileged=true --restart=always -v /Docker/mysql/data/:/var/lib/mysql -v /Docker/mysql/log/:/var/log/mysql -v /Docker/mysql/conf/:/etc/mysql/ -e MYSQL_ROOT_PASSWORD=123 -d mysql:5.7

安装PHP

docker run  --name php-fpm -p 9000:9000 --privileged=true --restart=always -v /Docker/php:/www --link mysql -d php:7.4.26-fpm 

安装nginx

docker run -p 80:80 --name nginx --privileged=true --restart=always -v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/nginx/conf/conf.d/default.conf:/etc/nginx/conf.d/default.conf -v /usr/local/nginx/log/:/var/log/nginx -v /usr/local/nginx/html/:/usr/share/nginx/html --link php-fpm  -d nginx:1.23.1

编写测试文件

[root@localhost ~]# vim /Docker/php/index.php 
<?php
        echo phpinfo();
?>
   

安装mysql扩展

[root@localhost ~]# docker exec -it php-fpm /bin/bash
root@d64b773a0f05:~# cd /usr/local/bin/
root@d64b773a0f05:/usr/local/bin# ./docker-php-ext-install pdo_mysql
root@d64b773a0f05:/usr/local/bin# ./docker-php-ext-install mysqli
root@d64b773a0f05:/usr/local/bin# cd /usr/local/etc/php
root@d64b773a0f05:/usr/local/etc/php# cp php.ini-production php.ini


[root@localhost ~]# docker cp php-fpm:/usr/local/etc/php/php.ini /Docker/

[root@localhost ~]# vim /Docker/php.ini 
extension=pdo_mysql
extension=mysqli

[root@localhost ~]# docker restart php-fpm
[root@localhost ~]# vim /Docker/php/mysql.php 
<?php
        $conn = mysqli_connect("172.17.0.2., "root", "123");
        if (!$conn) {
                die("连接失败: " . mysqli_connect_error());
        }
        echo "success";

        mysqli_close($conn);
?>
      

使用docker-compose进行安装

mkdir /compose
[root@localhost ~]# cd /compose/

[root@localhost compose]#  vim docker-compose.yml 

version: '3'
services:
  nginx:
    image: nginx:1.23.1
    ports:
      - "80:80"
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf:ro
      - ./www:/usr/share/nginx/html
    depends_on:
      - php-fpm
  php-fpm:
    image: php:fpm
    volumes:
      - ./www:/usr/share/nginx/html
  mysql:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: 123123
    ports:
       - "3306:3306"
    volumes:
       - ./mysql:/var/lib/mysql

创建nginx配置文件

[root@localhost compose]# vim nginx.conf
worker_processes  1;

events {
    worker_connections  1024;
}

http {
    server {
        listen 80;
        server_name localhost;

        root /usr/share/nginx/html;
        index index.php index.html index.htm;

        location / {
            try_files $uri $uri/ /index.php?$query_string;
        }

        location ~ \.php$ {
            try_files $uri /index.php =404;
            fastcgi_pass php-fpm:9000;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }
    }
}

创建PHP测试页面

[root@localhost compose]# mkdir www/
[root@localhost compose]# vim www/index.php 
<?php phpinfo(); ?>

创建MySQL连接PHP页面

[root@localhost compose]# vim www/mysql.php 
<?php
        $conn = mysqli_connect("172.19.0.2", "root", "123123");
        if (!$conn) {
                die("连接失败: " . mysqli_connect_error());
        }
        echo "success";
        mysqli_close($conn);
?>

一键启动LNMP

[root@localhost compose]# docker-compose up -d

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

笨鸟先飞geigeigei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值