基于window10使用docker搭建lnmpr环境

本文涉及的产品
云原生内存数据库 Tair,内存型 2GB
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
简介: 基于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…


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
4天前
|
监控 数据可视化 Linux
使用Portainer图形化工具轻松管理远程Docker环境并实现远程访问
使用Portainer图形化工具轻松管理远程Docker环境并实现远程访问
|
28天前
|
Docker 容器
蓝易云 - docker之Consul环境的部署
注意,这只是一个基本的Consul环境的部署。在生产环境中,你可能需要配置更多的选项,如数据持久化、网络设置等。
23 1
|
1月前
|
Docker 容器
蓝易云 - docker环境安装软件、更换镜像源以及E: Unable to locate package xxx解决
"E: Unable to locate package xxx"这个错误通常意味着APT包管理器无法找到你想要安装的软件包。可能的原因包括:软件包名称错误,软件包不存在,或者软件源没有更新。可以尝试更新软件源(`apt-get update`),确保软件包名称正确,或者更换软件源解决这个问题。
209 1
|
10天前
|
Linux Docker 容器
Docker02--搭建Linux环境,配置Docker,docker images无法访问,因为docker没有启动,阿里云镜像加速器免费的
Docker02--搭建Linux环境,配置Docker,docker images无法访问,因为docker没有启动,阿里云镜像加速器免费的
|
1月前
|
机器人 开发工具 计算机视觉
基于 docker 环境的 LET-VINS 复现
该文介绍了在Docker环境下实践LET-NET的步骤。从GitHub克隆LET-NET代码,使用Docker运行vins-mono环境。安装ncnn,配置代理,更新源,安装依赖并验证安装成功。在运行LET-NET时遇到opencv版本不兼容,指出怎么安装指定版本的 opencv。解决Docker容器中的显示问题,通过`xhost +`命令运行LET-NET。在ROS中构建VINS-Mono时,cv_bridge找不到的问题,通过安装cv_bridge,设置ROS环境和工作空间,以及解决ncnn的配置问题,最终成功运行VINS-Mono。还需要下载UMA-VI数据集并修改相关路径以运行演示。
|
1月前
|
机器学习/深度学习 安全 测试技术
【Docker项目实战】在Docker环境下使用RustScan端口扫描工具
【6月更文挑战第9天】在Docker环境下使用RustScan端口扫描工具
38 5
|
20天前
|
网络协议 安全 Docker
windows环境下的设置docker远程访问(开放2375端口)
windows环境下的设置docker远程访问(开放2375端口)
45 0
|
26天前
|
前端开发 安全 数据库
Web架构&前后端分离站&Docker容器站&集成软件站&建站分配
Web架构&前后端分离站&Docker容器站&集成软件站&建站分配
|
13天前
|
安全 关系型数据库 开发者
Docker Compose凭借其简单易用的特性,已经成为开发者在构建和管理多容器应用时不可或缺的工具。
Docker Compose是容器编排利器,简化多容器应用管理。通过YAML文件定义服务、网络和卷,一键启动应用环境。核心概念包括服务(组件集合)、网络(灵活通信)、卷(数据持久化)。实战中,编写docker-compose.yml,如设置Nginx和Postgres服务,用`docker-compose up -d`启动。高级特性涉及依赖、环境变量、健康检查和数据持久化。最佳实践涵盖环境隔离、CI/CD、资源管理和安全措施。案例分析展示如何构建微服务应用栈,实现一键部署。Docker Compose助力开发者高效驾驭复杂容器场景。
30 1
|
13天前
|
存储 监控 安全
Docker Compose:轻松实现容器编排的利器
【7月更文挑战第2天】 1. **基础与概念**:服务(多容器实例)、网络(灵活通信)、卷(数据持久化)和配置(安全管理)。 2. **实战指南**:安装Compose,编写`docker-compose.yml`文件,启动应用,并介绍依赖、环境变量、健康检查和数据持久化。 3. **最佳实践**:环境隔离、CI/CD集成、资源管理、日志监控、安全策略及案例分析,展示完整应用栈搭建。
36 1