
基于 Ubuntu 16.04 构建,一键自动安装最新版的 php7,支持使用外部MySQL数据库以及Composer组件。
关于 Docker 更多信息,请访问其官网。https://docs.docker.com
debian
apt-get update && \ apt-get -y install curl && \ curl -fsSL https://get.daocloud.io/docker | sh \ update-rc.d -f docker defaults && \ service docker start CentOS
yum update && \ curl -fsSL https://get.docker.com/ | sh && \ systemctl enable docker.service && \ systemctl start docker.service 如果你想使用内置的数据库,请忽略此步骤(二)(三),直接跳到步骤(四)
注意将
123456换成你的 MySQL Root 密码
docker run --name mysql \ -v /var/lib/mysql:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=123456 \ -p 3306:3306 \ -d mysql:latest 温馨提示:国内主机请将
idiswy/phpmyadmin:latest换成docker.wangyan.org/root/docker-phpmyadmin:latest
docker run --name phpmyadmin \ --link mysql:mysql \ -p 8080:80 \ -P -d idiswy/phpmyadmin:latest -name 容器名称-link 链接步骤(二)装好的外部数据库-v 左边是宿主机路径,右边是容器里的路径温馨提示:国内主机请将
idiswy/lnmp:latest换成docker.wangyan.org/root/docker-lnmp:latest
docker run --name wangyan \ --link mysql:mysql \ -v /home/wangyan:/home/wangyan \ -p 80:80 \ -p 443:443 \ -d idiswy/lnmp:latest 在一个容器中,一键安装全套的LNMP,但如果你想使用外部数据库,请返回到步骤(二)开始安装
-name 容器名称-v 左边是宿主机路径,右边是容器里的路径-MYSQL_ROOT_PASSWORD 设置 MySQL Root 密码温馨提示:国内主机请将
idiswy/lnmp:latest换成docker.wangyan.org/root/docker-lnmp:latest
docker run --name wangyan \ -v /home/wangyan:/home/wangyan \ -p 80:80 \ -p 443:443 \ -d idiswy/lnmp:latest 注意将
123456换成你的 MySQL Root 密码
docker exec -it wangyan mysql-setup MYSQL_ROOT_PASSWORD=123456 docker exec -it wangyan mysql-setup \ MYSQL_ROOT_PASSWORD=123456 \ MYSQL_USER=wangyan \ MYSQL_PASSWORD=123456 \ MYSQL_DATABASE=test 首先,安装个小工具
curl --fail -L -O https://github.com/phusion/baseimage-docker/archive/master.tar.gz && \ tar xzf master.tar.gz && \ ./baseimage-docker-master/install-tools.sh 然后,进入容器
docker-bash wangyan nginx:
/etc/nginx/nginx.conf
nginx site conf:
/etc/nginx/conf.d/default.conf
nginx site html:
/var/www/
nginx logs:
/var/log/nginx/
php5:
/etc/php/fpm/php.ini
php7:
/etc/php/7.0/fpm/php.ini
sv start|stop|status <service_folder> 例如: sv restart nginx via 《使用 runit 管理服务 》
Debbian
rm -rf /etc/localtime && \ ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \ echo "Asia/Shanghai" > /etc/timezone && \ apt-get -y install ntpdate && ntpdate -d cn.pool.ntp.org CentOS 7
via http://blog.wangyan.org/linux-centos-timedatectl
imedatectl set-timezone Asia/Shanghai timedatectl set-ntp yes dpkg-reconfigure exim4-config 关于lnmp更多信息,请访问lnmp主页。http://blog.wangyan.org/docker-lnmp
更多使用帮助请阅读wiki,其他问题欢迎在issues中反馈。
1 htfy96 Sep 4, 2016 via Android 不如 docker-compose … |
2 ivmm Sep 4, 2016 怎么办,我还是喜欢自己编译。。。 感觉已经跟不上时代了,真心觉得 docker 没有编译的好用。。。。。。 |
3 crazycen Sep 4, 2016 via iPhone 好复杂,还不如自己编译了!!! |
5 cxbig Sep 4, 2016 写个 docker-compose 。。。一个个命令跑人家怎么用。。。 |
6 WangYan OP 文档写得详细了就觉得复杂。。。其实就下面两行代码,复制粘贴两次就可以了。。 ``` docker run --name wangyan -p 80:80 -p 443:443 -d idiswy/lnmp:latest docker exec -it wangyan mysql-setup MYSQL_ROOT_PASSWORD=123456 ``` |
7 necpowman Sep 4, 2016 docker-compose 做编排 |
8 xmgit Sep 4, 2016 1. docker-compose 2. alpine 楼主落伍了。 |
9 9hills Sep 4, 2016 via iPhone 你把 LNMP 放到一个容器内,用 Docker 干毛啊,老老实实用 VM 不就好了么 很多人吐槽 Docker ,但大多数只是被 LZ 这种奇葩用法给误导了罢了…… |
10 icybee Sep 4, 2016 看了楼上的吐槽,我只能说。。。。。。。。。确实有点道理 |
11 Busy Sep 4, 2016 一个容器一个服务,不要堆砌,另外,建议容器基于 apline linux 来构建,轻量,小巧。譬如: https://hub.docker.com/r/registercn/php/ https://hub.docker.com/r/registercn/nginx/ https://hub.docker.com/r/registercn/mariadb/ 运行的时候,采用 docker-compose ,譬如 version: '2' services: mariadb: container_name: mariadb image: registercn/mariadb volumes: - /your/mysql/path:/var/lib/mysql restart: always phpfpm: container_name: phpfpm image: registercn/php:5 volumes: - /your/web/path:/var/www links: - mariadb restart: always nginx: container_name: nginx image: registercn/nginx ports: - "80:80" - "443:443" volumes: - /var/web/web:/var/www - ./nginx/conf.d:/etc/nginx/conf.d:ro links: - phpfpm restart: always web 应用中, mysql 的 host 填 mariadb nginx.conf 中的 fastcgi_pass 为 phpfpm:9000 ,譬如 server { listen 80; server_name www.domain.com; root /var/www/www.domain.com; index index.html; location ~ .*\.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass phpfpm:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } |
12 Busy Sep 4, 2016 |
13 xiqingongzi Sep 4, 2016 via Android @ivmm 大规模集群必须上镜像,不然会跪的。 |
15 WangYan OP |
17 yeszao Oct 17, 2017 |