LNMP和LAMP是PHP常用的两种运行环境,L代表Linux,N代表Nginx,A代表Apache,M代表Mysql,P代表PHP。在文章《「PHP编程」安装开发环境太烦?告诉你几个简单方法,分分钟搞定》中我们介绍了,可以使用公共的 Docker 镜像来安装PHP运行环境,但是公共的 Docker 镜像不一定满足所有场景,如果需要自定义怎么办?

下面以LNMP为例来进行介绍如何制作自己的 Docker 镜像。

1、安装Docker环境

根据操作系统的不同,Docker 环境的安装有不同的差异。使用 Windows 的同学可以使用 Docker Desktop,或者 Docker Toolbox,而使用 Linux 的同学可以使用源码安装,或者借助第三方的自动化命令。如下:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
curl -sSL https://get.daocloud.io/docker | sh

2、下载镜像

LNMP的制作要基于Linux,因此我们需要先下载Linux镜像,然后再以Linux镜像为基础安装MySQL、Nginx、PHP。下载Linux镜像,可以使用如下命令:

docker install centos

以上命令会默认安装最新版本的centos。

3、创建容器

当有了 Linux 镜像后,我们就可以以 Linux 镜像为基础创建 Linux 容器了。如下:

docker run -itd --name centos-lnmp centos /bin/bash

4、制作镜像

Linux容器创建好后,我们进入容器,然后安装nginx、mysql、php,如下:

docker exec -it 容器id /bin/bash

这里为了简单,nginx、mysql、php的安装,可以使用lnmp一键安装包。安装地址:https://lnmp.org/notice/lnmp-v1-7.html,lnmp一键安装包解决了基本的依赖问题。

需要注意的是,为了后面使用lnmp镜像创建容器后,lnmp环境就能正常运行,我们需要将如下命令加入到自动启动机制中:

lnmp start

5、提交到仓库

待上面步骤完成后,使用 exit 命令推出容器,然后使用如下命令将容器提交为镜像

docker commit -m "备注"  容器id

至此,LNMP 镜像就制作好了,此时,你就可以使用此镜像创建 LNMP 容器,运行 PHP 程序了。如下:

docker run -itd --name=my-lnmp -p 80:80 -p 3306:3306 -v  宿主机文件目录:LNMP镜像 -v 宿主机虚拟主键配置文件:/etc/nginx/conf.d lnmp镜像 

需要说明一下,上面的/usr/share/nginx/html路径和/etc/nginx/conf.d路径应以容器内部实际目录为准。唯一的原则是将一些需要经常变动的目录都映射到宿主机目录,这样方便后期动态调整。

docker php composer 使用_「PHP编程」如何使用Docker制作自己的LNMP/LAMP镜像相关推荐

  1. composer 安装dev包_「PHP编程」如何搭建私有Composer包仓库?

    在前一篇文章「PHP编程」如何制作自己的Composer包?中,我们已经介绍了如何制作自己的 composer 包,以及如何使用 composer 安装自己制作的 composer 包.不过,这其中有 ...

  2. 二维动画作品_「咻动画」二维动画制作中角色造型的设计要点

    关于二维动画可能就算不是动画行业的小伙伴们都多多少少都有所了解,近年来其在宣传片制作上面越来越受用.不少企业抛开传统保守的宣传片表现形式转而尝试动画制作宣传片,我们都知道在动画制作从脚本策划到输出成片 ...

  3. flash动画制作成品_「咻动画」flash动画在制作方面有哪些优势?

    在flash小游戏渐渐被越来越多的线上游戏淹没之后,flash动画制作渐渐地也淡出了我们的生活,不少小伙伴会发出时代变了之类的感叹.其实flash动画的应用范围并不局限于flash小游戏,在网页设计以 ...

  4. 自己本地搭建svn仓库_「PHP编程」如何制作自己的Composer包?

    PHP开发免不了要使用Composer,使用Composer有着明显的好处.一是可以很好的解决第三方包的相互依赖,二是可以方便进行代码的重用. 那如何制作自己的Composer包呢? 制作Compos ...

  5. java锁的有哪些_「并发编程」Java锁分类和特点有哪些

    公平锁.非公平锁:公平锁指多个线程按照申请锁的顺序来获取锁,非公平锁就是没有顺序完全随机,所以能会造成优先级反转或者饥饿现象:synchronized 就是非公平锁,ReentrantLock(使用 ...

  6. vc 获取月份的天数_「青少年编程」课程:输入年份与月份,得到该月有多少天...

    题目:输入年份与月份,说出该月共有多少天. 思路: 1.3.5.7.8.10.12每个月都有31天: 4.6.9.11每个月都有30天: 2月比较特殊,一般都是28天,遇到闰年(公历里:能被400整除 ...

  7. python闹钟界面程序_「Python编程」自由管理时间之编写一个小闹钟起床

    Python_时间管理 代码中的时间时间戳(Timestamp):1473525444 时间字符串(Format String):2015-02-14 11:25:11 结构化时间:(struct_t ...

  8. vs怎么把文字超链接_「Excel技巧」Excel表格如何制作带超链接的导航目录

    一份工作簿里面有很多工作表,我们都希望能够有一个导航目录,方便我们点击跳转到对应的工作表上,同样在工作表里有个返回键可以方便我们返回到主目录里.不用我们一个标签一个标签地去寻找工作表. 如下效果图: ...

  9. 「实战篇」开源项目docker化运维部署-后端java部署(七)

    原创文章,欢迎转载.转载请注明:转载自IT人故事会,谢谢! 原文链接地址:「实战篇」开源项目docker化运维部署-后端java部署(七) 本节主要说说后端的部署需要注意的点,本身renren-fas ...

最新文章

  1. Knowledge Point 20180305 数据在计算机中的表示
  2. NIPS | 谷歌AI大军来袭,看450多名员工如何横扫今年大会
  3. NFS文件系统详解以及安全设置
  4. 分时技术用户可以独占计算机资源,计算机基础第二章选择题(带答案修改版 )校过...
  5. 【C语言进阶深度学习记录】十六 静态库与动态库的创建与使用
  6. 队列 开源 php,消息队列 - 基于think-queue消息队列 – 基于ThinkPHP和Bootstrap的极速后台开发框架...
  7. c++ max函数_「C/C++」函数:定义、调用、参数传递
  8. 面向对象的七种设计原则
  9. 字母大小写全排列C语言,14种模式解决面试算法编程题(PART II)
  10. c语言超时自动退出,Golang实现for循环运行超时后自动退出的方法
  11. 如何开发一款堪比APP的微信小程序(腾讯内部团队分享)
  12. 基于OpenCV与MFC的人脸识别
  13. 银企直连ukey 集中管理方案
  14. 追忆信息论之父-香农博士
  15. 东航手机值机选座推荐
  16. 第三届中国CEO新年峰会参会感想二
  17. 五个学习管理系统的优点
  18. Matlab矩阵和数组的操作
  19. 12个球,其中有1个坏球和其他11个重量不一样,给你一个天平,称3次,找出不一样的那个
  20. C++四种cast的详细介绍

热门文章

  1. docker web程序本地化_Docker-01-Docker介绍
  2. redis 三种特殊数据类型
  3. 如何使用div优雅的布局
  4. spring mvc全局异常处理,注解实现
  5. 【算法设计与分析】06 几类重要的函数
  6. 曾国藩:诚敬静谨恒!
  7. Active Directory PowerShell模块收集AD信息
  8. 安卓学习日记:初识Android Studio · java环境配置和AS安装
  9. 如何使用 Microsoft Azure Media Services 现场直播,(Live Streaming) 直播流媒体系统
  10. 如何配置一个最基本的web富文本编辑器?--之wangEditor(验证成功)