• 售前

  • 售后

热门帖子
入门百科

Docker从零构建php-nginx-alpine镜像的方法

[复制链接]
虎哥726 显示全部楼层 发表于 2021-10-25 20:00:55 |阅读模式 打印 上一主题 下一主题
固然之前也曾用docker环境运行了一些项目,但对于镜像这块还不是很明白,且鉴于网上现成的镜像都包罗太多用不到的库,以是决定从零开始构建一个本身的镜像。

alpine linux为底子镜像
  1. docker pull gliderlabs/alpine
复制代码
alpine linux 镜像地点
现在最新的tag是3.8版本,镜像只有4M的巨细,非常的精简。
运行镜像
  1. docker run -it gliderlabs/alpine
复制代码
运行后可以看到内里有基本的linux文件体系,这里不做演示,有兴趣者可自行尝试。
安装php 和 nginx
  1. apk update
  2. apk add php7 nginx
复制代码
接下来,根据本身的必要可以继续安装php相干扩展包,大概其他linux扩展包。
搜刮扩展包,如php7工具包,可通过以下指令:
  1. # 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
  1. # 先创建pid文件,否则nginx运行不了
  2. mkdir /run/nginx
  3. touch /run/nginx/nginxpid
  4. # 先运行php,再运行nginx
  5. /usr/sbin/php-fpm7
  6. /usr/sbin/nginx
复制代码
至此,能看到php和nginx正常运行,镜像环境已经基本完成了。 接下来,可以看看怎么把这个镜像保存起来。
创建镜像
另起一个终端,用 docker ps查看镜像ID,如下指令可以保存镜像:
  1. 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端口看看效果
  1. docker run -it -p 8080:8080 yisonli/php7-nginx-alpine:0.1
复制代码
手动启动php-fpm和nginx后,浏览器就可看到效果了。

http://127.0.0.1:8080/index.php
docker补充记录
【共享文件夹】
  1. docker run -v `pwd`/www:/var/www/html -it -p 8080:8080 yisonli/php7-nginx-alpine:0.1
复制代码
【删除未运行的容器】
  1. docker rm $(docker ps -a -q)
复制代码
【用Dockerfile方式构建镜像】
  1. docker build -t yisonli/php7-nginx-alpine:0.2 .
复制代码
0.2是本文流程稍作优化后,写成Dockerfile后build出来的,而且带启动脚本。

已上传到 Docker Hub,可供下载研究。
【给镜像添加额外的tag标签】
  1. docker tag 9d9c6030e5e9 test/mytag
复制代码
以上就是本文的全部内容,盼望对各人的学习有所资助,也盼望各人多多支持草根技能分享。

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作