参考:https://github.com/micooz/docker-lnmp

一、简介

  使用Dcoekr镜像部署lnmp(Linux、Nginx、MySQL、PHP7)。

  1.1 结构 

app
└── src
└── index.php
docker-compose.yml
etc
└── localtime
mysql
├── conf
│ └── my.cnf
└── mysqldb
nginx
├── ca
│ ├── server.crt
│ └── server.key
├── conf.d
│ └── test.conf
└── nginx.conf
php-fpm
├── Dockerfile
├── php-7.2.3.tar.gz
├── php-fpm.conf
├── php.ini
├── var
│ ├── log
│ │
│ └── run

└── www.conf # app 静态文件
# /etc/localtime 同步时区
# mysqldb 数据存储

  

二、部署

  2.1 php-fpm Dockerfile  

FROM centos:latest
MAINTAINER bigberg RUN yum -y install gcc gcc-c++ gd-devel libxml2 libxml2-devel libcurl-devel \
openssl openssl-devel curl curl-devel libjpeg libjpeg-devel libpng \
freestyle freestyle-devel pcre pcre-devel libxslt libxslt-devel bzip2 bzip2-devel
ADD php-7.2.3.tar.gz /tmp/
RUN cd /tmp/php-7.2.3 \
&& ./configure --prefix=/usr/local/php \
--with-curl --with-freetype-dir --with-gd \
--with-gettext --with-iconv-dir --with-kerberos \
--with-libdir=lib64 --with-libxml-dir --with-mysqli \
--with-openssl --with-pcre-regex --with-pdo-mysql \
--with-pdo-sqlite --with-pear --with-png-dir \
--with-jpeg-dir --with-xmlrpc --with-xsl --with-zlib \
--with-bz2 --with-mhash --enable-fpm --enable-bcmath \
--enable-libxml --enable-inline-optimization --enable-gd-native-ttf \
--enable-mbregex --enable-mbstring --enable-opcache \
--enable-pcntl --enable-shmop --enable-soap --enable-sockets \
--enable-sysvsem --enable-sysvshm --enable-xml --enable-zip \
&& make && make install \
&& cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm \
&& chmod a+x /etc/init.d/php-fpm \
&& groupadd -g 1001 www \
&& useradd -g 1001 -u 1001 www EXPOSE 9000
CMD ["/usr/local/php/sbin/php-fpm", "--nodaemonize"]

Dockerfile

  2.2 docker-compose.yml

version: ''
services:
# web server
nginx:
image: nginx:latest
ports:
- "80:80"
- "443:443"
volumes:
# app,挂在目录
- ./app/src:/usr/share/nginx/html
# ngnix configs
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
- ./nginx/conf.d/:/etc/nginx/conf.d/:ro
# certificates
- ./nginx/ca/server.crt/:/etc/nginx/server.crt:ro
- ./nginx/ca/server.key/:/etc/nginx/server.key:ro
- ./etc/localtime:/etc/localtime:ro
links:
- php:php-cgi # PHP-FPM
php:
build: ./php-fpm
volumes:
- ./app/src:/usr/share/nginx/html
# php.ini
- ./php-fpm/php.ini:/usr/local/php/etc/php.ini:ro
- ./php-fpm/php-fpm.conf:/usr/local/php/etc/php-fpm.conf:ro
- ./php-fpm/www.conf:/usr/local/php/etc/php-fpm.d/www.conf:ro
- ./php-fpm/var:/usr/local/php/var
- ./etc/localtime:/etc/localtime:ro
links:
- mysql:mysql
ports:
- "9000:9000"
stdin_open: true
tty: true # database
mysql:
image: mysql:latest
ports:
# Allow client to access 3306
- "3306:3306"
volumes:
# my.cnf
- ./mysql/conf/my.cnf:/etc/mysql/conf.d/my.cnf
# your data will be stored in ./mysql
- ./mysql/mysqldb:/var/lib/mysql
- ./etc/localtime:/etc/localtime:ro
environment:
- MYSQL_ROOT_PASSWORD=123456

  2.3 构建  

$ docker-compose up --build

  2.4 查看

$ docker-compose ps
Name Command State Ports
-------------------------------------------------------------------------------------------------------
composelnmp_mysql_1 docker-entrypoint.sh mysqld Up 0.0.0.0:3306->3306/tcp
composelnmp_nginx_1 nginx -g daemon off; Up 0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp
composelnmp_php_1 /usr/local/php/sbin/php-fp ... Up 0.0.0.0:9000->9000/tcp

  相关文档:https://github.com/Bigberg/docker/tree/master/compose-lnmp

最新文章

  1. Rafy 框架 - 插件级别的扩展点
  2. Openfire Strophe IE跨域问题
  3. (转)R空间数据处理与可视化
  4. SVM-线性可分支持向量机
  5. Cacti的基本使用
  6. WPF常用方法,事件驱动和控件遍历
  7. Symbol Table
  8. Thinkphp常用的方法和技巧(转)
  9. C#写的SQL聚合函数
  10. UVA 1153 KEEP THE CUSTOMER SATISFIED
  11. centos安装和卸载软件
  12. PHP是什么文件? 如何打开?
  13. bzoj1926[Sdoi2010]粟粟的书架 二分 主席树
  14. TopShelf安装多实例
  15. AsyncTask机制
  16. 第十八节:详解Java抽象类和接口的区别
  17. 基于Windows Subsystem for Linux (WSL) 【Ubuntu】在WIN10 Home Edition安装Docker
  18. django实现分页
  19. UESTC 486 Good Morning (水题+坑!)
  20. vmware esxi 过期,激活

热门文章

  1. selenium去掉下载弹窗
  2. js中被调用的函数获取调用者对象
  3. Myeclipse2013破解方法
  4. RNA Sequencing
  5. POJ3621或洛谷2868 [USACO07DEC]观光奶牛Sightseeing Cows
  6. Nowcoder 练习赛26E 树上路径 - 树剖
  7. 设计师们做UI设计和交互设计、界面设计等一般会去什么网站呢?
  8. 9款原型设计工具与Sketch的强强组合,轻松构建交互原型!
  9. 查询数据库中的表格---通过构造方法将数据存入到List集合中---遍历进行输出
  10. contenteditable设置元素可编辑