赞
踩
通过dockerfile生成自定义nginx镜像
编写dockerfile
FROM nginx
RUN echo 'hello nginx!!!!' > /usr/share/nginx/html/index.html
执行docker build -t nginx:v3 .
以下示例,通过目录下的 Dockerfile 构建一个 nginx:v3(镜像名称:镜像标签)。
注:最后的 . 代表本次执行的上下文路径
上一节中,有提到指令最后一个 . 是上下文路径,那么什么是上下文路径呢?
$ docker build -t nginx:v3 .
上下文路径,是指 docker 在构建镜像,有时候想要使用到本机的文件(比如复制),docker build 命令得知这个路径后,会将路径下的所有内容打包。
解析:由于 docker 的运行模式是 C/S。我们本机是 C,docker 引擎是 S。实际的构建过程是在 docker 引擎下完成的,所以这个时候无法用到我们本机的文件。这就需要把我们本机的指定目录下的文件一起打包提供给 docker 引擎使用。
如果未说明最后一个参数,那么默认上下文路径就是 Dockerfile 所在的位置。
注意:上下文路径下不要放无用的文件,因为会一起打包发送给 docker 引擎,如果文件过多会造成过程缓慢。
**Dockerfile的文件名默认为Dockerfile,**这是Docker官方推荐的命名方式。当我们在构建镜像的时候,Docker会默认在当前目录下查找名为Dockerfile的文件,并根据文件中的内容构建镜像。但是,如果你想给Dockerfile取一个自定义的名字,也是完全可以的。
当我们需要使用自定义的Dockerfile名字时,我们需要在构建镜像的时候通过-f或–file参数指定Dockerfile的路径。下面是一个示例:
docker build -f my-dockerfile .
docker run --name nginx-test -p 8080:80 -d nginx:v3
参数说明:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。