基于window10使用docker搭建lnmpr环境

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 基于window10使用docker搭建lnmpr环境

基于window10使用docker搭建lnmpr环境

Docker介绍

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

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

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

下载Docker Desktop

www.docker.com/products/do…

下载LNMP

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

01ebd755782e4c909dad0843d3544acf.jpeg

启动LNMP并映射本地环境

01ebd755782e4c909dad0843d3544acf.jpeg

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容器中就有映射关系

01ebd755782e4c909dad0843d3544acf.jpeg

  • 退出容器 exit;

01ebd755782e4c909dad0843d3544acf.jpeg

  • 本地数据库连接软件

01ebd755782e4c909dad0843d3544acf.jpeg

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

01ebd755782e4c909dad0843d3544acf.jpeg

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

01ebd755782e4c909dad0843d3544acf.jpeg

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

  • 对应得建本地目录

01ebd755782e4c909dad0843d3544acf.jpeg

  • 成功如下

01ebd755782e4c909dad0843d3544acf.jpeg

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

01ebd755782e4c909dad0843d3544acf.jpeg

  • 安装压缩扩展
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
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

01ebd755782e4c909dad0843d3544acf.jpeg

  • 安装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 驱动包,下载地址:pecl.php.net/package/mem…

01ebd755782e4c909dad0843d3544acf.jpeg

  • 结果

01ebd755782e4c909dad0843d3544acf.jpeg

01ebd755782e4c909dad0843d3544acf.jpeg

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

01ebd755782e4c909dad0843d3544acf.jpeg

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,安装成功

01ebd755782e4c909dad0843d3544acf.jpeg

调试

  • 创建index.php文件

01ebd755782e4c909dad0843d3544acf.jpeg

  • 进入容器
docker exec -it nginx /bin/sh
  • 安装vim
apt-get update
apt-get install vim
  • 修改配置default.conf文件
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;                                                                                                                                                                                   
    }

01ebd755782e4c909dad0843d3544acf.jpeg

  • 重启容器
docker restart nginx
复制代码

01ebd755782e4c909dad0843d3544acf.jpeg

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

01ebd755782e4c909dad0843d3544acf.jpeg

最后结果

01ebd755782e4c909dad0843d3544acf.jpeg01ebd755782e4c909dad0843d3544acf.jpeg

感谢

blog.csdn.net/qq_35141640…blog.csdn.net/william_n/a…


目录
相关文章
|
7月前
|
数据采集 存储 Docker
深入理解Docker:为你的爬虫项目提供隔离环境
本教程介绍如何使用Docker构建隔离环境,运行Python爬虫项目,采集小红书视频页面的简介和评论。主要内容包括: 1. **Docker隔离环境**:通过Docker容器化爬虫,确保环境独立、易于部署。 2. **代理IP技术**:利用亿牛云爬虫代理突破反爬限制。 3. **Cookie与User-Agent设置**:伪装请求头,模拟真实用户访问。 4. **多线程采集**:提高数据采集效率。 前置知识要求:Python基础、Docker基本操作及HTML解析(可选)。教程还涵盖常见错误解决方法和延伸练习,帮助你优化爬虫代码并避免陷阱。
218 7
深入理解Docker:为你的爬虫项目提供隔离环境
|
3月前
|
消息中间件 监控 Docker
Docker环境下快速部署RabbitMQ教程。
就这样,你成功地用魔法召唤出了RabbitMQ,还把它和你的应用程序连接了起来。现在,消息会像小溪流水一样,在你的系统中自由流淌。别忘了,兔子们不喜欢孤独,他们需要你细心的关怀,不时地监控它们,确保他们的世界运转得井井有条。
237 18
|
3月前
|
Ubuntu 机器人 开发者
Docker环境下的ROS Noetic:Ubuntu 20.04 系统下的解决方案
这就是在Docker环境下安装ROS Noetic在Ubuntu 20.04系统的一种简单方法,希望能对你有所帮助。
430 16
|
5月前
|
关系型数据库 MySQL Linux
在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾
以上就是在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾的步骤。这个过程就像是一场接力赛,数据从MySQL数据库中接力棒一样传递到备份文件,再从备份文件传递到其他服务器,最后再传递回MySQL数据库。这样,即使在灾难发生时,我们也可以快速恢复数据,保证业务的正常运行。
275 28
|
4月前
|
算法 Shell 定位技术
在Docker环境下搭建openvslam/orb_slam3的步骤和问题总结
总的来说,搭建openvslam或orb_slam3的过程需要一些耐心和技术知识,但只要你遵循上述步骤,并且在遇到问题时进行适当的调试,你应该能够成功搭建并运行openvslam或orb_slam3。
223 11
|
9月前
|
Ubuntu Linux Shell
(已解决)Linux环境—bash: wget: command not found; Docker pull报错Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled
(已成功解决)Linux环境报错—bash: wget: command not found;常见Linux发行版本,Linux中yum、rpm、apt-get、wget的区别;Docker pull报错Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled
4537 69
(已解决)Linux环境—bash: wget: command not found; Docker pull报错Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled
|
6月前
|
Java API Docker
在线编程实现!如何在Java后端通过DockerClient操作Docker生成python环境
以上内容是一个简单的实现在Java后端中通过DockerClient操作Docker生成python环境并执行代码,最后销毁的案例全过程,也是实现一个简单的在线编程后端API的完整流程,你可以在此基础上添加额外的辅助功能,比如上传文件、编辑文件、查阅文件、自定义安装等功能。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
在线编程实现!如何在Java后端通过DockerClient操作Docker生成python环境
|
弹性计算 应用服务中间件 Linux
基于ECS快速搭建Docker环境
本教程介绍如何快速搭建Docker环境,并使用Docker部署一个Nginx服务。
基于ECS快速搭建Docker环境
|
弹性计算 应用服务中间件 nginx
|
弹性计算 应用服务中间件 Linux
基于ECS快速搭建Docker环境(进阶班-Day2)
安装Docker总结下来只需要4步: 1、安装Docker-CE 2、配置加速镜像(国内网络原因导致) 3、使用Docker安装Nginx服务 4、测试Nginx
1816 0
基于ECS快速搭建Docker环境(进阶班-Day2)