第九区

一个程序员的经验笔记

用dockerfile制作自己的LNMP镜像

| 暂无评论

[toc]

本篇目的

  • 本文是《用docker部署WEB项目》的第三篇
  • 上一篇文章我们练习了如何在alpine上搭建自己的网站,这次我们练习如何用dockerfile建一个基于alpine的镜像。
  • 在web项目的迭代过程中,nginx和php的配置更改和升级可能性比较大,放在同一个镜像中交付会比较方便。

前置条件

新建dockerfile文件

  • 在电脑上新建文件夹c:\docker\docker_files\mylnmp
  • 在mylnmp文件夹中用编辑器新建一个文件dockerfile,录入内容
#基于alpine镜像
FROM php:7.2.4-fpm-alpine3.6
LABEL maintainer="will <will@cn09.com>"
RUN \
    echo "http://mirrors.aliyun.com/alpine/v3.6/main" > /etc/apk/repositories \
    && echo "http://mirrors.aliyun.com/alpine/v3.6/community" >> /etc/apk/repositories \
    && apk update \
    && apk add --no-cache nginx supervisor \
#  && docker-php-source deleted \
    && rm /etc/nginx/nginx.conf \
    && mkdir /run/nginx \
    && mkdir /etc/supervisor.d
ADD nginx.conf /etc/nginx
ADD default.conf /etc/nginx/conf.d
ADD supervisord-nginx-php.ini /etc/supervisor.d
ADD run.sh /
ADD index.tar /var/www/html
RUN chmod 0777 /var/www/html -R
EXPOSE 80
CMD ["/run.sh"]

基本上,对照上一篇文章中的练习,这段dockerfile中的代码都比较容易理解。
命令中的几个ADD用于将本地文件复制到镜像中;
nginx.conf文件在系统中已存在所以需要先删除然后再制。

相关文件准备

生成和使用镜像

  • 在mylnmp文件夹中输入命令行生成镜像
docker build -t mylnmp .
  • 用生成的镜像制作容器
docker run --rm -d -p 8080:80 mylnmp
  • 在浏览器中访问http://127.0.0.1:8080 和http://127.0.0.1:8080/info.php 验证效果

安装完成

现在我们已经成功制作和使用了第一个自己的docker镜像。

版权申明

本文来自 第九区,转载请保留本段文字。

发表评论

*为必填字段!