linux上docker简单部署lnmp+redis

Posted 红尘练

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux上docker简单部署lnmp+redis相关的知识,希望对你有一定的参考价值。

前面安装docker的过程就不提了

 

1.创建目录

mkdir -p /lnmp/{php,nginx,mysql,redis}
mkdir -p /lnmp/mysql/{conf,data}
mkdir -p /lnmp/nginx/conf.d

 

2.生成mysql容器

docker run --name mysql56 -v /lnmp/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3309:3306 -d mysql:5.6

3.生成phpmyadmin容器

docker run --name phpmyadmin56 --link mysql56:db -p 9998:80 -d phpmyadmin/phpmyadmin

4.生成php容器

docker run -d -v /lnmp/php/:/var/www/html -p 9001:9000 --link mysql56:mysql --name php70 php:7.0-fpm

5.php安装扩展

进入容器

docker exec -it php70 /bin/bash

安装mysqli扩展和pdo扩展,执行

docker-php-ext-install mysqli pdo pdo_mysql

安装php-redis扩展,执行

pecl install redis && docker-php-ext-enable redis

一路no!!!

退出容器,重启容器

6.生成nginx容器

docker run -d --name nginx -p 666:80 -v /lnmp/php/:/var/www/html -v /lnmp/nginx/conf.d:/etc/nginx/conf.d --link php70:php70 nginx

7.修改nginx的config文件,放在/lnmp/nginx/conf.d目录下

server
{
    listen       80;#nginx容器端口
    server_name  localhost;
    index admin.html admin.htm admin.php;
    root  /var/www/html/ht/public/;#nginx容器里面的路径
    charset utf-8;
    
    fastcgi_split_path_info ^(.+\\.php)(/.+)$;  
    fastcgi_param   PATH_INFO   $fastcgi_path_info;  
    fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;

    location / {
                index  admin.php admin.html admin.htm;
                #以下代码必须有        
                if (!-e $request_filename) {
                        rewrite  ^(.*)$  /admin.php?s=$1  last;
                         break;
                    }
         }    
    
    access_log off;        
    
    location ~ \\.php(.*)$ {
                root           /var/www/html/ht/public/;#nginx容器里面的路径
                fastcgi_pass   php70:9000;#php容器名称和对应端口
                fastcgi_index  admin.php;
                fastcgi_param  SCRIPT_FILENAME  $DOCUMENT_ROOT$fastcgi_script_name;
                fastcgi_param PATH_INFO $1;
                include        fastcgi_params;
        }
}

8.生成redis容器

docker run -itd --name redis -p 6380:6379 redis

9.php代码连接redis

 

 

 10.php代码连接mysql

 

 

11.查看容器

 

 

 

12.mysql容器如何导入大文件sql

将本地的sql文件导入容器

先进入mysql容器,在home下创建tmp目录,然后退出容器

把宿主机的sql文件copy到容器目录

docker cp /opt/a.sql mysql:/home/tmp/

进入mysql容器,登陆接连mysql

登入容器并登陆mysql

docker exec -it mysql56 mysql -uroot -p123456

执行sql文件

source /home/tmp/a.sql

 

以上是关于linux上docker简单部署lnmp+redis的主要内容,如果未能解决你的问题,请参考以下文章

简单描述在docker上部署nginx应用和在集群中部署的区

如何在docker里部署lnmp

DockerFile部署lnmp+memcached+redis+mongodb开发环境for Redis

Docker-部署LNMP

Docker-部署LNMP

Docker-部署LNMP