前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于window10使用docker搭建lnmpr环境

基于window10使用docker搭建lnmpr环境

作者头像
OwenZhang
发布2022-11-16 17:17:24
6780
发布2022-11-16 17:17:24
举报
文章被收录于专栏:Owen's WorldOwen's World

本文正在参加「金石计划 . 瓜分6万现金大奖」

本文环境 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

代码语言:javascript
复制
docker pull nginx
docker pull mysql
docker pull php
docker pull redis

启动LNMP并映射本地环境

mysql
代码语言:javascript
复制
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

对应得建本地目录

进入容器

代码语言:javascript
复制
docker exec -it mysql /bin/sh

本地d:\workspace\etc\mysql\logs目录新建一个文件 对应docker容器中就有映射关系

  • 退出容器 exit;

  • 本地数据库连接软件

  • 如果停止mysql容器, docker stop mysql

  • 然后启动本地window数据库,则test数据库是不存在的,这就是容器的意思吧,哈哈哈

php
代码语言:javascript
复制
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

进入容器

代码语言:javascript
复制
docker exec -it php80 /bin/sh
cd /

安装压缩扩展

代码语言:javascript
复制
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

安装composer

代码语言:javascript
复制
cd /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/

代码语言:javascript
复制
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

  • 结果

退出容器

代码语言:javascript
复制
exit;

重启容器

代码语言:javascript
复制
docker restart php80

进入容器

代码语言:javascript
复制
docker exec -it php80 /bin/sh

查看已安装扩展

代码语言:javascript
复制
php-m

redis
代码语言:javascript
复制
docker run --name redis -p 6379:6379 -d redis:latest
nginx
代码语言:javascript
复制
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文件

进入容器

代码语言:javascript
复制
docker exec -it nginx /bin/sh

安装vim

代码语言:javascript
复制
apt-get update
apt-get install vim

修改配置default.conf文件

代码语言:javascript
复制
vim /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;                                                                                                                                                                                   
    }

- 重启容器

代码语言:javascript
复制
docker restart nginx

- 刷新http://127.0.0.1/index.php

- 修改index.php文件

代码语言:javascript
复制
<?php
$link = mysqli_connect('mysql', 'root', 'root');
if (!$link) {
    die('Could not connect: ' . mysqli_error());
}
echo 'Connected successfully';
mysqli_close($link);
?>

最后结果

感谢

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

Buy me a cup of coffee :)

觉得对你有帮助,就给我打赏吧,谢谢!

微信赞赏码链接,点击跳转:

https://www.owenzhang.com/wechat_reward.png

本文正在参加「金石计划 . 瓜分6万现金大奖」

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-11-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基于window10使用docker搭建lnmpr环境
    • Docker介绍
      • 下载Docker Desktop
        • 下载LNMP
          • 启动LNMP并映射本地环境
            • mysql
            • php
            • redis
            • nginx
            • 调试
          • 最后结果
            • 感谢
            • Buy me a cup of coffee :)
            相关产品与服务
            容器服务
            腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档