基于window10使用docker搭建lnmpr环境

本文环境 docker20.10,tomcat10.1,Mysql8.0\\
不懂的可以评论或联系我邮箱:owen@owenzhang.com\\
著作权归OwenZhang所有。商业转载请联系OwenZhang获得授权,非商业转载请注明出处。

基于window10使用docker搭建lnmpr环境

Docker介绍

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

下载Docker Desktop

https://www.docker.com/products/docker-desktop/

下载LNMP

docker pull nginx
docker pull mysql
docker pull php
docker pull redis

启动LNMP并映射本地环境

mysql

docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -v d:\\workspace\\etc\\mysql\\conf:/etc/mysql/conf.d -v d:\\workspace\\etc\\mysql\\logs:/logs -v d:\\workspace\\etc\\mysql\\data:/var/lib/mysql -d mysql:8.0
  • 对应得建本地目录
  • 进入容器docker exec -it mysql /bin/sh
  • 本地d:\\workspace\\etc\\mysql\\logs目录新建一个文件 对应docker容器中就有映射关系

  • 退出容器
    exit;
  • 本地数据库连接软件
  • 如果停止mysql容器, docker stop mysql
  • 然后启动本地window数据库,则test数据库是不存在的,这就是容器的意思吧,哈哈哈

php

docker run --name php80 -p 9000:9000 -v d:\\workspace\\www:/var/www/html -v d:\\workspace\\log\\php:/var/log/php --link mysql:8.0 -d php:8.0-fpm

d:\\workspace\\www

d:\\workspace\\log\\php

  • 对应得建本地目录

  • 成功如下

安装PHP扩展和composer
  • 进入容器docker exec -it php80 /bin/sh
    cd /

  • 安装压缩扩展apt-get update
    apt-get install git
    apt-get install vim
    apt-get install wget
    apt-get install --yes zip unzip
    apt-get install -y pkg-config libmemcached-dev autoconf gcc make zlib1g zlib1g-dev vim
  • 安装composercd /tmp
    php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
    php composer-setup.php
    php -r "unlink('composer-setup.php');"
    mv composer.phar /usr/local/bin/composer
    composer -V

  • 安装memcache,mongodb,event,redis,mysqli,mysql,gd扩展

PHP扩展文件目录 /usr/src/php/ext/

pecl install https://pecl.php.net/get/memcache-8.0.tgz
docker-php-ext-enable memcache

pecl install https://pecl.php.net/get/mongodb-1.14.2.tgz
docker-php-ext-enable mongodb

pecl install https://pecl.php.net/get/event-3.0.8.tgz
docker-php-ext-enable event

pecl install https://pecl.php.net/get/redis-5.3.7.tgz
docker-php-ext-enable redis

docker-php-ext-install pdo_mysql  
docker-php-ext-install mysqli

你可以在 PHP 官网上下载 memcache PHP 驱动包,下载地址:https://pecl.php.net/package/memcache

  • 结果

  • 退出容器exit;
  • 重启容器docker restart php80docker exec -it php80 /bin/shphp-m
  • 进入容器
  • 查看已安装扩展

redis

docker run --name redis -p 6379:6379 -d redis:latest

nginx

docker run --name nginx -p 80:80 -p 443:443 -v d:\\workspace\\www:/var/www/html -v d:\\workspace\\etc\\nginx:/etc/nginx/nginx/ -v d:\\workspace\\log\\nginx:/var/log/nginx --link php80:8.0-fpm --link redis:latest --link mysql:8.0 -d nginx:latest
  • 对应得建本地目录
  • 安装成功
  • 在本地浏览器输入127.0.0.1,安装成功

调试

  • 创建index.php文件

  • 进入容器docker exec -it nginx /bin/sh
  • 安装vimapt-get update
    apt-get install vimvim /etc/nginx/conf.d/default.conf

    location ~ \\.php$ {
    root /var/www/html; #php容器的目录,不是nginx
    fastcgi_pass php80:9000;#php容器名
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    }

  • 修改配置default.conf文件

  • 重启容器docker restart nginx
  • 刷新http://127.0.0.1/index.php

  • 修改index.php文件<?php
    $link = mysqli_connect('mysql', 'root', 'root');
    if (!$link) {
    die('Could not connect: ' . mysqli_error());
    }
    echo 'Connected successfully';
    mysqli_close($link);
    ?>
  • 刷新http://127.0.0.1/index2.php

最后结果

感谢

https://blog.csdn.net/qq_35141640/article/details/112541009

https://blog.csdn.net/william_n/article/details/116465149

Buy me a cup of coffee 🙂

本站文章资源均来源自网络,除非特别声明,否则均不代表站方观点,并仅供查阅,不作为任何参考依据!
如有侵权请及时跟我们联系,本站将及时删除!
如遇版权问题,请查看 本站版权声明
THE END
分享
二维码
海报
基于window10使用docker搭建lnmpr环境
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
<<上一篇
下一篇>>