使用Docker部署lnmp环境 | 牧天的酒吧

使用Docker部署lnmp环境

2022-01-11 11:21:24 于 技术

参考文章:
https://www.jianshu.com/p/f2c9a265bb27

https://hub.docker.com/r/2233466866/lnmp

https://github.com/DuckLL/lnmp

下面的docker镜像以duckll/lnmp为例,也可以使用2233466866/lnmp。
2233466866/lnmp的操作说明见参考文章的第二个链接。

1.获取镜像

安装docker之后 , 使用命令获取指定镜像, 这里使用的是duckll/lnmp
更多docker镜像:https://hub.docker.com/search/?q=image&type=image

docker pull duckll/lnmp

2.使用镜像创建docker容器

docker run -dit \
-p 9001:80 \
-p 9002:443 \
-p 9003:3306 \
-p 9004:9000 \
-v /opt/volume/nongcundanao/www:/home/wwwroot/default \
-v /opt/volume/nongcundanao/nginx:/usr/local/nginx \
-v /opt/volume/nongcundanao/php:/usr/local/php \
--privileged=true \
--name=nongcundanao \
--restart=always \
--network=junzhai \
--network-alias=junzhai-nongcundanao-server \
duckll/lnmp

3.lnmp安装成功

此时访问该服务器并加上docker的端口就可以访问到nginx了

4.进入容器

docker exec -it nongcundanao /bin/bash

5.修改nginx配置文件

配置文件目录位于 /usr/local/nginx/conf/nginx.conf,注意这里是docker内部的nginx
默认的web运行目录为:/home/wwwroot/default
PHP安装目录为:/usr/local/php
注意事项:
(1)第2步的docker实例配置中,将实例的相关目录映射到了宿主机中,以便后续修改配置。
在映射之前,要在宿主机中的相应目录把对应的文件准备好,因为映射的逻辑是将宿主机中的文件拷贝至docker实例中。
这里的矛盾点,如果宿主机中的文件事先没有,比如nginx和php等的文件,那么得先不做映射,启动docker示例后,从docker实例中把文件拷贝至宿主机中。然后将实例停止、删除,再重新启动实例。

cp nongcundanao:/usr/local/nginx /opt/volume/nongcundanao/nginx
cp nongcundanao:/usr/local/php /opt/volume/nongcundanao/php
docker stop nongcundanao
docker rm nongcundanao

(2)修改完相关配置后,要回到docker实例中重启nginx和php服务。

cd /usr/local/nginx/sbin
./nginx -s reload
回主页