通过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 协议》,转载必须注明作者和本文链接
容器编排了解一下 :grin:
docker 怎么部署php代码?打包镜像,然后拉取镜像吗?
编排的可以在我这个基础上搞搞
github.com/839891627/dnmp 我这个弄得比较简单
可以参考一下这个 github.com/c2s/docker-lnmp
不直接上laradock?
@839891627 已星
用network的话 nginx容器里的php配置也是直接用php容器名?