Docker如何构建php-nginx-alpine镜像

这篇文章给大家分享的是有关Docker如何构建php-nginx-alpine镜像的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

创新互联建站是一家集网站建设,南沙企业网站建设,南沙品牌网站建设,网站定制,南沙网站建设报价,网络营销,网络优化,南沙网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

alpine linux为基础镜像

docker pull gliderlabs/alpine

alpine linux 镜像地址

目前最新的tag是3.8版本,镜像只有4M的大小,非常的精简。

运行镜像

docker run -it gliderlabs/alpine

运行后可以看到里面有基本的linux文件系统,这里不做演示,有兴趣者可自行尝试。

安装php 和 nginx

apk update
apk add php7 nginx

接下来,根据自己的需要可以继续安装php相关扩展包,或者其他linux扩展包。

搜索扩展包,如php7工具包,可通过以下指令:

# apk search php7

安装php扩展

复制代码 代码如下:

apk add php7-MySQLi php7-pdo_mysql php7-mbstring php7-json php7-zlib php7-gd php7-intl php7-session php7-fpm php7-memcached

目录结构

  • php7目录: /etc/php7

  • nginx目录: /etc/nginx

启动php-fpm和nginx

# 先创建pid文件,否则nginx运行不了
mkdir /run/nginx 
touch /run/nginx/nginxpid

# 先运行php,再运行nginx
/usr/sbin/php-fpm7
/usr/sbin/nginx

至此,能看到php和nginx正常运行,镜像环境已经基本完成了。 接下来,可以看看怎么把这个镜像保存起来。

创建镜像

另起一个终端,用 docker ps查看镜像ID,如下指令可以保存镜像:

docker commit -a "yisonli" -m "my first php7-nginx" 9d9c6030e5e9 yisonli/php7-nginx-alpine:0.1

注:9d9c6030e5e9为镜像ID,yisonli/php7-nginx-alpine为保存的镜像名,版本定义为0.1

运行新生成的镜像

绑定8080端口看看效果

docker run -it -p 8080:8080 yisonli/php7-nginx-alpine:0.1

手动启动php-fpm和nginx后,浏览器就可看到效果了。

http://127.0.0.1:8080/index.php

docker补充记录

【共享文件夹】

docker run -v `pwd`/www:/var/www/html -it -p 8080:8080 yisonli/php7-nginx-alpine:0.1

【删除未运行的容器】

docker rm $(docker ps -a -q)

【用Dockerfile方式构建镜像】

docker build -t yisonli/php7-nginx-alpine:0.2 .

0.2是本文流程稍作优化后,写成Dockerfile后build出来的,而且带启动脚本。

 已上传到 Docker Hub,可供下载研究。

【给镜像添加额外的tag标签】

docker tag 9d9c6030e5e9 test/mytag

感谢各位的阅读!关于“Docker如何构建php-nginx-alpine镜像”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!


分享文章:Docker如何构建php-nginx-alpine镜像
分享地址:http://ybzwz.com/article/peojee.html