Awesome Open Source
Awesome Open Source

LNMP Docker

GitHub stars Build Status GitHub release GitHub (pre-)release license Build Status


💻 🐳 🐘 🐬 🐧 🚀 Start LNMP In Less than 2 minutes Powered By Docker Compose, one command $ ./lnmp-docker up

Platform Status
Windows Build status
Linux Build Status
macOS CI
Linux arm64v8 Build Status

LNMP Docker is supported on Linux, macOS, Windows 10 on x86_64, and Debian (Raspberry Pi3) on arm.

⚠️ Don't Edit Any Files except .env Why ?

⚠️ Run Laravel on Docker For Windows very slow. solve it.

🎁 Donate

🐳 腾讯云 Kubernetes


Welcome developer subscribe WeChat


To use LNMP Docker, you need:

1️⃣ Git

2️⃣ Docker CE 19.03 Stable +

3️⃣ Docker Compose 1.27.0+

4️⃣ WSL (Windows Only)

Quick Start

Windows 10

Please see Windows 10.


Use git install LNMP Docker.

$ git clone --depth=1

# $ git clone --depth=1 [email protected]:khs1994-docker/lnmp.git

# 中国镜像

$ git clone --depth=1

# $ git clone --depth=1 [email protected]:khs1994-docker/lnmp.git

Start LNMP Demo

$ cd lnmp

$ ./lnmp-docker up

$ curl

Welcome use khs1994-docker/lnmp v20.10 x86_64 With Pull Docker Image


💡 MySQL default root password mytest

Start PHP Project

Create new folder to start PHP project(e.g, Laravel) in ./app/ folder, And edit nginx config file in ./config/nginx/yourfilename.conf.

# $ ./lnmp-docker new

$ ./lnmp-docker restart nginx

You can set APP_ROOT to change PHP project folder.

More information please see Docker PHP Best Practice

How to connect Services

$redis = new \Redis();

- $redis->connect('',6379);
+ $redis->connect('redis', 6379);

- $pdo = new \PDO('mysql:host=;dbname=test;port=3306','root','mytest');
+ $pdo = new \PDO('mysql:host=mysql,dbname=test,port=3306', 'root', 'mytest');


PHPer commands

  • lnmp-php

  • lnmp-composer

  • lnmp-phpunit

  • lnmp-laravel

  • ...

For more information please see Documents

Issue SSL certificate

Powered by

$ ./lnmp-docker ssl -d *

Please set API key and id in .env file or System ENV. Support Self-Signed SSL certificate, for more information, see Documents.

List LNMP Container

$ docker container ls -a -f label=com.khs1994.lnmp

Use Self-Build Docker Image

Edit Dockerfile in ./dockerfile/*/Dockerfile, then exec ./lnmp-docker build.


# Restart all container
$ ./lnmp-docker restart

$ ./lnmp-docker restart nginx php7


$ ./lnmp-docker stop

Stop and remove

$ ./lnmp-docker down



Please see Documents.

What's inside

Name Docker Image Version Based khs1994/acme:2.8.8 2.8.8 alpine:3.12
NGINX nginx:1.19.6-alpine 1.19.6 alpine:3.12
NGINX Unit khs1994/php:8.0.2-unit-alpine 1.22.0 alpine:3.12
HTTPD httpd:2.4.46-alpine 2.4.46 alpine:3.12
MySQL mysql:8.0.23 8.0.23 debian:buster-slim
MariaDB mariadb:10.5.8 10.5.8 ubuntu:focal
Redis redis:6.0.10-alpine 6.0.10 alpine:3.12
PHP-FPM khs1994/php:8.0.2-fpm-alpine 8.0.2 alpine:3.12
Composer khs1994/php:8.0.2-composer-alpine 2.0.9 alpine:3.12
Memcached memcached:1.6.9-alpine 1.6.9 alpine:3.12
RabbitMQ rabbitmq:3.8.11-management-alpine 3.8.11 alpine:3.11
PostgreSQL postgres:13.2-alpine 13.2 alpine:3.12
MongoDB mongo:4.4.3 4.4.3 ubuntu:bionic
PHPMyAdmin phpmyadmin:5.0.4 5.0.4 alpine:3.12
Registry registry:latest latest alpine:3.11

Folder Structure

Folder description
app PHP project (HTML, PHP, etc)
scripts/backup backup database file
bin PHPer Commands
config configuration file
dockerfile Dockerfile
log log file
scripts bash shell script

Exposed Ports

  • 80
  • 443


Easy to generate nginx or apache config, etc. Please use ./lnmp-docker.

Who use in Production?



Please see


Please see khs1994-docker/ci



Please see Contributing


More Information


Please see


We send OS type and IP data to us data collection server, please set true (default) to help us improve.

You can edit .env file DATA_COLLECTION=false to disable it.

AD 🐳

腾讯云 Kubernetes

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
php (16,075
docker (2,801
laravel (1,597
dockerfile (850
devops (561
docker-compose (378
ci (236
wsl (60
lemp (16
lnmp (16

Find Open Source By Browsing 7,000 Topics Across 59 Categories