通过docker部署lnmp

文章编写时间为2020/11/30,若时间久远请酌情查看
(首选其实是homestead)

  • 去docker官网下载dockerdesktop
  • 注册docker账号
  • 安装好后打开命令行工具

备注 以下命令行中出现的以 {}括起来的说明是参数 不要直接复制

输入 docker pull php:7.4.12-zts-buster 
输入 docker pull nginx 拉取nginx镜像
输入 docker pull mysql:8.0.22拉取mysql镜像
输入 docker pull redis拉取redis镜像(可选)

//拉取php镜像7.4版本(最新是8 这里用7.4)
docker pull php:7.4.12-fpm
//拉取php镜像7.4版本(最新是8 这里用7.4)
docker pull nginx
//拉取mysql镜像8.0.22版本
docker pull mysql:8.0.22
//拉取redis镜像
docker pull redis
//创建桥接网络
docker network create {lnmp}
//lnmp是网络名 随便取

等待镜像拉取完毕后

//启动mysql
docker run -d --name {mysql} -p 3306:3306 -e MYSQL_ROOT_PASSWORD={password} --network lnmp mysql
//mysql:8.0.22是容器名 随便取 lnmp是上面创建的网络名 password是root的默认密码

//启动php
docker run -itd --name {php7412} -p 9000:9000  --network {lnmp} php:7.4.12-fpm
//php7412是容器名 随便取lnmp是上面创建的网络名
进入php bash后输入以下指令安装pdo_mysql扩展
docker-php-ext-install pdo_mysql

//启动redis
docker run -d -p 6379:6379 --name{redis} --network {lnmp} redis
//redis是容器名 随便取 lnmp是上面创建的网络名

//启动nginx
docker run -d -p 80:80 -v {path/to/nginx/configs}:/etv/nginx/config.d-v {path/to/projects}:/var/www/--name {nginx} --network {lnmp} nginx
//nginx是容器名 lnmp是上面创建的网络名 path/to/nginx/configs是nginx 本机子站点配置文件夹path/to/projects是本地项目文件夹(建议是项目组的文件夹 方便添加多个站点)

然后就可以到nginx config.d 文件夹下创建*.conf 添加站点


可选
//php安装redis扩展
curl -L -o /tmp/redis.tar.gz https://github.com/phpredis/phpredis/archive/5.3.2.tar.gz
tar xfz /tmp/redis.tar.gz
rm -r /tmp/redis.tar.gz
mkdir -p /usr/src/php/ext
mv phpredis-5.3.2 /usr/src/php/ext/redis
docker-php-ext-install redis
本作品采用《CC 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 7

容器编排了解一下 :grin:

3年前 评论
porygonCN (楼主) 3年前

docker 怎么部署php代码?打包镜像,然后拉取镜像吗?

3年前 评论
porygonCN (楼主) 3年前
xuanjiang (作者) 3年前
porygonCN (楼主) 3年前

编排的可以在我这个基础上搞搞 :smiley: github.com/839891627/dnmp 我这个弄得比较简单

3年前 评论
porygonCN (楼主) 3年前

可以参考一下这个 github.com/c2s/docker-lnmp

3年前 评论
porygonCN (楼主) 3年前

不直接上laradock?

3年前 评论
porygonCN (楼主) 3年前

用network的话 nginx容器里的php配置也是直接用php容器名?

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!