目录
- 使用docker-compose搭建lnmpr环境
- 介绍
- 软件架构
- Compose 简介
- 具体文件内容docker-compose.yml
- 使用说明
使用docker-compose搭建lnmpr环境
本文环境 docker20.10,PHP8.1(含扩展)+ Nginx1.22 + MySQL8.0 + Mongo6.0 + Redis6.0 + Swoole2.0
介绍
docker-compose搭建PHP8.1(含扩展)+ Nginx1.22 + MySQL8.0 + Mongo6.0 + Redis6.0 + Swoole2.0
Docker 是一个开源的应用容器引擎,基于Go 语言并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
Gitee地址:gitee.com/owenzhang24…
感谢
在kingsfeng的基础上添加了一些功能和插件 GitHub地址: github.com/kingsfeng/d…
软件架构
docker-compose搭建LNMP环境映射文件目录,clone到指定composer_lnmp74目录,可以一键安装
Compose 简介
Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。
如果你还不了解 YML 文件配置,可以先阅读YAML 入门教程。
Compose 使用的三个步骤:
- 使用 Dockerfile 定义应用程序的环境。
- 使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。
- 最后,执行 docker-compose up 命令来启动并运行整个应用程序。
安装教程
git clone https://gitee.com/owenzhang24/docker_compose_lnmp.git lnmp
cd lnmp
docker-compose build
docker-compose up -d
具体文件内容docker-compose.yml
version: \”3.8\”
# 定义四个服务nginx,php,mysql,redis
# php-fpm和php-cli可以选着1个安装,看项目,2个一起安装也可以
services:
redis:
image: redis:6.0
container_name: lnmp_redis
build: ./redis
volumes:
– ./redis/redis.conf/:/etc/redis.conf:ro
– ./redis/data:/usr/local/redis/data
– ./redis/redis.log:/usr/local/redis/redis.log
environment:
– TZ=Asia/Shanghai
ports:
– \”6379:6379\”
command: [ \”redis-server\”, \”/etc/redis.conf\” ]
networks:
– backend
mysql:
image: mysql:8.0
container_name: lnmp_mysql
volumes:
– ./mysql/conf.d:/etc/mysql/my.cnf:ro
– ./mysql/data:/var/lib/mysql
– ./mysql/log:/data/mysql/logs
environment:
– MYSQL_ROOT_PASSWORD=root
– TZ=Asia/Shanghai
# platform: linux/x86_64 #针对mac M1芯片
ports:
– \”3306:3306\”
networks:
– backend
mongo:
image: mongo:6.0
container_name: lnmp_mongo
volumes:
– ./mongo/data:/data/db
– ./mongo/log:/var/log/mongodb
environment:
– MONGO_INITDB_ROOT_USERNAME=owenweb
– MONGO_INITDB_ROOT_PASSWORD=owenweb
– TZ=Asia/Shanghai
ports:
– \”27017:27017\”
networks:
– backend
php:
image: php:8.1-fpm
container_name: lnmp_php
build: ./php/extension
#防止启动php失败
stdin_open: true
#防止启动php失败
tty: true
depends_on:
– \”mysql\”
– \”redis\”
– \”mongo\”
volumes:
– ./nginx/www:/var/www/html
– ./php/log:/var/log/php
– ./php/etc/php.ini:/usr/local/etc/php/php.ini
# – ./php/etc/php-fpm.conf:/usr/local/etc/php-fpm.conf # 映射配置文件
# – ./php/etc/php-fpm.d:/usr/local/etc/php-fpm.d
links:
– mysql:mysql
environment:
– TZ=Asia/Shanghai
ports:
– \”9000:9000\”
networks:
– frontend
– backend
phpcli:
image: php:8.1-cli
container_name: lnmp_phpcli
build: ./php/extension-phpcli
#防止启动php失败
stdin_open: true
#防止启动php失败
tty: true
depends_on:
– \”mysql\”
– \”redis\”
– \”mongo\”
volumes:
– ./nginx/www:/var/www/html
– ./php/log:/var/log/php
– ./php/etc/php.ini:/usr/local/etc/php/php.ini
# – ./php/etc/php-fpm.conf:/usr/local/etc/php-fpm.conf # 映射配置文件
# – ./php/etc/php-fpm.d:/usr/local/etc/php-fpm.d
links:
– mysql:mysql
environment:
– TZ=Asia/Shanghai
ports:
– \”8241:8241\”
networks:
– frontend
– backend
nginx:
image: nginx:1.22
container_name: lnmp_nginx
# 依赖关系 先跑php nginx必须依赖php的,所以要用depends_on
depends_on:
– \”php\”
volumes:
– ./nginx/ssl/:/etc/nginx/ssl/
– ./nginx/conf:/etc/nginx/nginx/ # 主配置文件
– ./nginx/www:/usr/share/nginx/html # 项目目录
– ./nginx/log:/var/log/nginx # 日志
links:
– php:php
– phpcli:phpcli
environment:
– TZ=Asia/Shanghai
ports:
– \”80:80\”
– \”443:443\”
networks:
– frontend
node:
image: node:18.0
container_name: lnmp_node
volumes:
– ./node:/node
environment:
– TZ=Asia/Shanghai
ports:
– \”3000:3000\”
command: [ \”tail\”, \”-f\”, \”/dev/null\” ]
networks:
– backend
networks:
frontend:
backend:
如果安装失败了或者配置文件修改导致build失败可以执行以下步骤再进行重新build
- docker-compose stop
点 y 确认后删除所有containers(环境有其他containers的话谨慎执行)
- docker-compose rm
删除所有images(环境有其他image的话谨慎执行)
- docker rmi $(docker images -q)
使用说明
/docker_compose_lnmp/php/extension/dockerfile 是PHP8.1的常用扩展,包括mysqli、gd、mcrypt、zip、redis、memcache、mongodb、swoole等等
在/docker_compose_lnmp/ 目录下执行安装命令
以上就是详解docker compose搭建lnmpr环境实现的详细内容,更多关于docker compose lnmpr环境搭建的资料请关注悠久资源网其它相关文章!