通过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 协议》,转载必须注明作者和本文链接
gema
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 6

容器编排了解一下 :grin:

3个月前 评论
gema (楼主) 3个月前

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

3个月前 评论
gema (楼主) 3个月前
xuanjiang (作者) 3个月前
gema (楼主) 3个月前

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

3个月前 评论
gema (楼主) 3个月前

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

3个月前 评论
gema (楼主) 3个月前

不直接上laradock?

3个月前 评论
gema (楼主) 3个月前

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