收藏本页 | 设为主页 | RSS
LOGO

我就上乐乐吧

Docker虽然好用,但是鉴于网上现成的PHP+Nginx镜像中都包含太多用不到的第三方库,所以决定从零开始构建一个纯净的镜像。

您当前的位置:首页 » 技术杂萃
全站公告
重要提示!

本站收集各类美图,以无LOGO原汁原味图为主!欢迎大家交流。
怕失联,请认准如下地址:
微博:传送门
土豆:传送门
电报:传送门
微信:superimagelove
花瓣:传送门
Q群1:231151757
Q群2:583138281
文件解压密码:593668.com
热心赞助

站内搜索
 
相关文章
热门文章
热搜词组
文章归档
友情链接
Docker使用alpine镜像从零构建PHP+Nginx+MySQL环境的方法

发布日期:2018-12-10  关键词: Docker PHP Nginx MySQL

Docker虽然好用,但是鉴于网上现成的PHP+Nginx镜像中都包含太多用不到的第三方库,所以决定从零开始构建一个纯净的镜像。

1)拉alpine基础镜像
#docker pull alpine
目前最新的tag是3.8版本,镜像只有4M的大小,非常的精简。

2)运行镜像
#docker run -it alpine

3)更换国内阿里云源
#echo '传送门' > /etc/apk/repositories
#echo '@community 传送门' >> /etc/apk/repositories
#echo '@testing 传送门' >> /etc/apk/repositories
#echo '@latest 传送门' >> /etc/apk/repositories
#apk update

4)安装PHP+Nginx+MySQL
#apk add php7 php-fpm7 php7-mysqli php7-mbstring php7-openssl php7-gd php7-pdo_mysql php7-mcrypt
...其它插件请参照如上命令自行安装。
#apk add nginx
#apk add Mariadb mariadb-client

5)配置,请自行去调整参数
php7配置文件目录: /etc/php7
nginx目录: /etc/nginx
同时,MariaDB 数据库还需要进一步设置。
#/etc/init.d/mariadb setup


6)启动php-fpm,nginx和MySQL
请提前创建pid文件,否则nginx会报错[nginx: [emerg] open() "/run/nginx/nginx.pid" failed (2: No such file or directory)],运行不了。先运行php-fpm,再运行nginx。
#mkdir /run/nginx
#touch /run/nginx/nginxpid
#service php-fpm7 start
#service nginx start
#service mariadb start
#/usr/bin/mysql_secure_installation

7)另起一个终端,用 docker ps查看镜像ID,再用如下指令保存镜像:
#docker commit -a "sunson" -m "sunson php7 nginx" 8d204424d4ec sunson/php7-nginx-alpine:0.01
注:8d204424d4ec为镜像ID,sunson/php7-nginx-alpine:0.01为保存的镜像名,版本定义为0.01

8)运行新生成的镜像
docker run -it -p 80:80 sunson/php7-nginx-alpine:0.01
手动进到容器内执行命令,启动php-fpm,nginx和MySQL后,浏览器就可看到效果了【传送门p】。

当然这种用法还是很粗糙的,更好的办法是,写个Dockerfile创建镜像,带启动脚本就更好,有兴趣的同学自行去研究。
猜您喜欢:
Q群: 231151757微信:superimagelove 官网:www.593668.com