Dockerfile 是什么镜像的定制实际上就是定制每一层所添加的配置、文件。如果我们可以把每一层修改、安装、构建、操作的命令都写入一个脚本,用这个脚本来构建、定制镜像,那么之前提及的无法重复的问题、镜像构建透明性的问题、体积的问题就都会解决。这个脚本就是 Dockerfile。
为什么要用 Dockerfile
Dockerfile的好处实在是太多了,除非你真的能很容易的找到一个满足你一切需求,没有你不想要的层,非常好用的镜像。当你想要追求以上的条件时,就可以开始考虑用Dockerfile构建属于自己的镜像了。
Dockerfile 基本指令
Dockerfile功能很强大,它提供了十多个指令,详细可参考Dockerfile 指令详解
Dockerfile 实战
下面将以构建一个后端web应用为例,学习Dockerfile的使用。这个基本的web应用包括:利用Flask框架编写的后端应用
MySQL作为数据库
因此,分别需要两个个容器:运行后端程序的容器
数据库容器
启动 MySQL容器
对于数据库容器,可以直接使用官方的mysql镜像。例如:1sudo docker pull mysql:5.7
如果配置了国内官方镜像仍然无法拉取,可以使用别的镜像库,例如DaoCloud,网易等:1sudo docker pull daocloud.io/library/mysql:5.7.4
然后运行这个容器,配置端口映射。由于我本地3306已经被使用,于是配置3307端口来映射:1
<