docker构建镜像

Posted liumy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker构建镜像相关的知识,希望对你有一定的参考价值。

 

 

创建docker镜像有两种方法。

1。docker commit 这种不推荐,就不介绍了。

2。用docker build命令和Dockerfile文件

下面构建一个nginx小应用。

创建文件夹
mkdir static_web
进入这个文件夹 cd static_web
/
创建Dockerfile文件 touch Dockerfile

技术图片

编辑Dockerfile文件

下面是Dockerfile文件的代码。

FROM ubuntu:18.04
MAINTAINER lmy "lmy@163.com"
RUN apt-get update && apt-get install -y nginx
RUN echo ‘Hi, I am in your container‘ /usr/share/nginx/html/index.html
EXPOSE 80

技术图片

技术图片

docker构建是有缓存的,如果你只修改了第4步,那么前3步会用缓存。但是有时候要确保构建过程不会使用缓存。比如,如果已经缓存了前面的第3步,即apt-get update,那么docker将不会再次刷新APT包的缓存。

要想略过缓存功能,可以用docker build 的--no-cache 标志。

sudo docker build --no-cache -t lmy/static_web .

当然如果你不想用命令行,可以在Dockerfile中加入下面的指令来不用缓存。

FROM ubuntu:18.04
MAINTAINER lmy "lmy@163.com"
ENV REFRESHED_AT 2019-07-24
RUN apt-get update && apt-get install -y nginx
RUN echo ‘Hi, I am in your container‘ /usr/share/nginx/html/index.html
EXPOSE 80

这个ENV是在镜像中设置环境变量,我通过ENV指令来设置一个名为REFRESHED_AT的环境变量,这个环境变量用来表明该镜像模板的最后的更新时间,如果想刷新一次构建,可以通过修改这个刷新时间来实现。

查看镜像是如何构建出来的。

sudo docker history lmy/static_web

技术图片

 

以上是关于docker构建镜像的主要内容,如果未能解决你的问题,请参考以下文章

Docker 镜像及Docker仓库配置 [四]

jenkins构建docker镜像

云原生之Docker实战使用Dockerfile构建docker镜像

docker--docker commit构建docker镜像

Gradle项目构建docker镜像(支持Gradle多模块)

docker入门之三:docker构建私有镜像入门到实践