### docker-compose:lnmp+redis+mongo服務,php加載擴展,直接復制下方代碼即可
```
version : '3.3'
services:
# mysql容器
mysql:
container_name: lnmp_mysql
image: mysql:5.7
restart: always
ports:
- 33061:3306
volumes:
# - ./mysql/my.cnf:/etc/mysql/my.cnf
- ./mysql/data:/var/lib/mysql #掛載數據目錄到本地
- ./mysql/log:/var/log/mysql
command:
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--explicit_defaults_for_timestamp=true
--lower_case_table_names=1
--max_allowed_packet=256M
--default-authentication-plugin=mysql_native_password
--sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: '123456'
MYSQL_DATABASE: 'bjl_local_db'
MYSQL_USER: 'bjl_local_db'
MYSQL_PASSWORD: '123456'
privileged: true
#這里本人還配置了phpmyadmin容器,相當于連接mysql的客戶端工具
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: lnmp_phpmyadmin
restart: always
ports:
- 8888:80
environment:
PMA_ARBITRARY: 1
TZ: Asia/Shanghai
UPLOAD_LIMIT: 500M
MYSQL_USERNAME: root
MYSQL_ROOT_PASSWORD: 123456
PMA_HOST: lnmp_mysql
privileged: true
# redis容器
redis:
container_name: lnmp_redis
image: redis:7.0
restart: always
# image: daocloud.io/library/redis:6.0.5-alpine
# image: redis:5.0
ports:
- 5000:6379
volumes:
# - ./redis/data:/data #掛載數據目錄到本地
- ./redis/redis.conf:/etc/redis/redis.conf
- ./redis/logs:/logs
command: [ "redis-server","/etc/redis/redis.conf" ]
# privileged:true【使用該參數,container內的root擁有真正的root權限。否則,container內的root只是外部的一個普通用戶權限】
privileged: true
# nginx容器
nginx:
container_name: lnmp_nginx
image: nginx
ports:
- 8080:80
- 4000:443
working_dir: /wwwroot
volumes_from:
- php #繼承phpfpm掛載目錄
volumes:
- ./html:/usr/share/nginx/html
- ./nginx/nginx.conf:/etc/nginx/nginx.conf
- ./nginx/conf.d:/etc/nginx/conf.d
- ./nginx/logs:/var/log/nginx
depends_on:
- php
links:
- php:php
restart: always
logging:
driver: 'json-file'
options:
max-size: '10g'
privileged: true
# mongoDb容器
mongo:
hostname: lnmp_mongo
container_name: lnmp_mongo
image: mongo:4.4.6
restart: always
command: mongod
logging:
driver: 'json-file'
options:
max-size: '10g'
volumes:
- ./mongo/config/mongod.conf:/etc/mongod.conf:rw
- ./mongo/configdb:/data/configdb:rw
- ./mongo/db:/data/db:rw
ports:
- "27000:27017"
environment:
TZ: Asia/Shanghai
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: 123456
privileged: true
# php容器
php:
container_name: lnmp_php
build:
context: ./php # dockerfile文件路徑
dockerfile: Dockerfile # 指定dockerfile文件名稱
ports:
- 9000:9000
tmpfs: /var/temp #上傳臨時文件夾
# links:
# - mysql
# - redis
# - mongo
links:
- mysql:mysql
- redis:redis
- mongo:mongo
environment:
TZ: Asia/Shanghai
working_dir: /wwwroot
volumes:
- ./wwwroot:/wwwroot #程序運行目錄
- ./php/logs:/usr/local/var/log
restart: always
logging:
driver: 'json-file'
options:
max-size: '10g'
privileged: true
```
- Docker容器化部署使用說明書
- 環境部署
- Windows系統
- Windows部署Docker
- 安裝過程可能碰到的問題總結
- Docker部署環境
- Docker hub操作
- Docker 部署 laravel5.5問題總結
- Docker處理中文亂碼問題
- Linux系統
- Centos7.2部署Docker
- Linux部署Docker準備前工作
- 部署docker問題總結
- Linux部署Docker粗略筆記
- 安裝git
- Docker命令大全
- 問題
- php7.4 安裝xlswriter擴展
- php7.2 DockerFile文件
- dockerFile和docker-composer區別
- docker-compose的使用
- docker-compose的使用問題總結
- docker-compose
- Windows系統
- docker-compose.yml編寫
- nginx目錄如下
- conf.d
- default.conf
- nginx.conf
- php目錄如下
- Dockerfile
- redis目錄如下
- redis.conf
- docker-compose使用說明
- Linux系統
- /workspace/html/config_dev
- html
- index.html
- index.php
- nginx
- conf
- nginx.production.conf
- conf.d
- default.conf
- log
- access.log
- error.log
- Dockerfile
- php
- conf
- php.production.ini
- php-fpm.conf
- log(目錄)
- php-fpm.d
- www.conf
- supervisor
- conf
- log
- Dockerfile
- .env
- docker-compose.yml