基于 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 2016-09-04 13:14:22 +08:00 via Android
不如 docker-compose …
|
2
ivmm 2016-09-04 13:21:47 +08:00
怎么办,我还是喜欢自己编译。。。
感觉已经跟不上时代了,真心觉得 docker 没有编译的好用。。。。。。 |
3
crazycen 2016-09-04 13:39:39 +08:00 via iPhone
好复杂,还不如自己编译了!!!
|
5
cxbig 2016-09-04 13:46:49 +08:00
写个 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 2016-09-04 14:28:38 +08:00
docker-compose
做编排 |
8
Bardon 2016-09-04 16:59:38 +08:00
1. docker-compose
2. alpine 楼主落伍了。 |
9
9hills 2016-09-04 17:05:58 +08:00 via iPhone
你把 LNMP 放到一个容器内,用 Docker 干毛啊,老老实实用 VM 不就好了么
很多人吐槽 Docker ,但大多数只是被 LZ 这种奇葩用法给误导了罢了…… |
10
icybee 2016-09-04 17:13:45 +08:00
看了楼上的吐槽,我只能说。。。。。。。。。确实有点道理
|
11
Havee 2016-09-04 17:14:24 +08:00 1
一个容器一个服务,不要堆砌,另外,建议容器基于 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
Havee 2016-09-04 17:21:06 +08:00 3
|
13
xiqingongzi 2016-09-04 19:01:49 +08:00 via Android
@ivmm 大规模集群必须上镜像,不然会跪的。
|
15
WangYan OP |
17
yeszao 2017-10-17 12:27:56 +08:00
|