写在前面
新项目要用到新框架,闲下来想搭建一套集成环境;想到,反正今后也常用,干脆用docker做一个基于lnmp,centos系统及开发常用工具集成环境好了;
docker hub上有很多,现在有时间,就当作巩固下docker咯;
mac上docker工具安装,另有篇幅介绍;
1.从docker hub搜索及下载镜像;
做一个基于centos的开发环境镜像,我需要有一个centos镜像
docker search centos//查看centos相关镜像
![](https://img.haomeiwen.com/i882388/1dcc6fec6c15ee81.png)
选好评最多的那个,哈哈哈~
docker pull centos:latest //下载镜像
![](https://img.haomeiwen.com/i882388/a4bafd87c518c77f.png)
2.构建镜像基本思路
构建镜像有两种方法
1.使用docker commit 命令
2.使用docker build 命令和Dockerfile文件
制作的大概思路是,结合以上两种方法,在制作基础环境(base-image)时,首先采用docker run,进入容器内部修改镜像环境,commit成为新的镜像
其次,再基于基础环境(base-image),分别针对各个不同项目,编写Dockerfile;
项目的配置环境信息相对基础环境(base-image)来说,变动还是比较频繁的,这部分新增或者修改的过程,沉淀下来还是有必要的;
简单来说就是,相对不变的部分commit沉淀结果,变动的部分做到Dockerfile里,沉淀变化过程;
为什么制作基础环境(base-image)不用Dockerfile?
其实也是可以的,主要还是因为我懒啊~
在制作基础环境(base-image)中,实际就是各种软件的安装过程,常常会碰到手动编译的过程,或者做环境之间的配置,这个过程比较繁琐,又因为基础环境一般是不会频繁变动的,我的目的是为了得到基础镜像这个结果,所以,就不把安装过程的执行的shell命令做成脚本了,额,其实有耐心的同学记录安装过程的命令,转为Dockerfile也是可以的,哈哈哈~~,反正我不干~~
3.制作基础环境(base-image)镜像
//使用交互式的方式运行centos镜像,并为容器并名为centos-base
docker run -i -t --name centos-base centos
进入容器后安装nginx,php,mysql
《lnmp环境安装详细》
//退出镜像,commit
exit
docker commit f08e500fb473 centos
![](https://img.haomeiwen.com/i882388/343571a220773850.png)
这样,一个镜像就只做完成啦~
网友评论