🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
>[info] 构建 nginx mysql php redis 镜像(docker-compose) 1. 创建 `lnmp` 网络 ```console docker network create --driver bridge --subnet=172.18.0.0/16 --gateway=172.18.0.1 mynet_lnmp ``` 2. 创建 `docker-compose.yml` 配置文件 ~~~ version: "3" services: nginx: # 镜像 image: nginx:1.22 # 容器名字 container_name: lnmp_nginx # 依赖关系 先跑php nginx必须依赖php depends_on: - "php" # 重启 restart: always # 容器互联 links: - php:php # 环境变量 environment: - TZ=Asia/Shanghai # 端口 ports: - "80:80" - "443:443" volumes: # 主配置文件 - ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf - ./nginx/conf/conf.d:/etc/nginx/conf.d # 项目 - ./nginx/html:/usr/share/nginx/html # 日志 - ./nginx/log:/var/log/nginx # 证书 - ./nginx/ssl/:/etc/nginx/ssl # 网络模式 networks: mynet_lnmp: ipv4_address: 172.18.0.2 php: # 镜像 image: php:7.4-fpm # 容器名字 container_name: lnmp_php # 依赖关系 depends_on: - "mysql" # 防止启动php失败 stdin_open: true # 防止启动php失败 tty: true # 授权 privileged: true # 重启 restart: always # 容器互联 links: - mysql:mysql # 环境变量 environment: - TZ=Asia/Shanghai # 端口 ports: - "9000:9000" # 数据卷 volumes: # 项目 - ./nginx/html:/usr/share/nginx/html # 日志 - ./php/log:/var/log/php # 配置(php.ini-development php.ini-production) - ./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/www.conf:/usr/local/etc/php-fpm.d/www.conf # 网络模式 networks: mynet_lnmp: ipv4_address: 172.18.0.3 redis: # 镜像 image: redis:6.0 # 容器名字 container_name: lnmp_redis # 授权 privileged: true # always,启动失败时一直尝试重启 restart: always # 环境变量 environment: - TZ=Asia/Shanghai # 端口 ports: - "6379:6379" # 容器启动后默认执行的命令 command: /bin/bash -c "redis-server /usr/local/etc/redis/redis.conf --requirepass 123456" # 数据卷 volumes: # 配置文件 - ./redis/conf/redis.conf:/usr/local/etc/redis/redis.conf:rw # 数据文件 - ./redis/data:/data:rw # 日志文件 - ./redis/logs:/usr/local/etc/redis/logs:rw # 网络模式 networks: mynet_lnmp: ipv4_address: 172.18.0.4 mysql: # MySQL对应版本的镜像 # image: daocloud.io/library/mysql:5.7 image: mysql:5.7 # 容器名称 container_name: lnmp_mysql # 授权 privileged: true # 重启MySQL容器,always,启动失败时一直尝试重启 restart: always # MySQL运行端口 ports: - "3306:3306" # MySQL环境,包括用户名和密码 environment: # 设置root用户密码 MYSQL_ROOT_PASSWORD: 123456 # 时区 TZ: Asia/Shanghai # 语言 LANG: en_US.UTF-8 # 连接超时配置及授权配置 command: --max_connections=1000 --wait_timeout=28800 --interactive_timeout=28800 --default-authentication-plugin=mysql_native_password # 数据卷挂载 volumes: # 数据库文件路径 - ./mysql/data:/var/lib/mysql # 数据库日志(chmod 777 mysql/log/mysql) - ./mysql/log/mysql:/var/log/mysql # 数据库配置文件路径 - ./mysql/conf/my.cnf:/etc/mysql/my.cnf # 网络模式 networks: mynet_lnmp: ipv4_address: 172.18.0.5 # 网络模式(顶级) networks: mynet_lnmp: # 定义上面的服务用到的网桥名称 默认创建就是 bridge external: true # 使用外部指定网桥 注意:网桥必须存在 ~~~