美文网首页
Dockerfile详解

Dockerfile详解

作者: 星际探索者 | 来源:发表于2020-06-10 11:28 被阅读0次

在使用Dockerfile构建镜像之前,我们先用一个案例来演示构建镜像的过程,首先我们使用ubuntu作为基础镜像,然后安装并运行figlet程序.
案例1:
1、安装figlet

1、运行并进入容器
docker container run -ti ubuntu bash
2、更新容器环境
apt-get update
3、安装figlet
apt-get install -y figlet

2、运行figlet "hello docker",效果如下图


image.png

3、退出容器并查看容器id


image.png

4、制作镜像,docker container commit c439fd3f731a


image.png

5、查看制作的镜像,docker image ls,此时的镜像没有仓库和tag标签信息


image.png

6、给镜像打标签,docker image tag dae95304ac1d ourfiglet,可以看到镜像已添加标签信息


image.png

7、测试镜像docker容器运行
docker container run ourfiglet figlet hello docker


image.png

上面的通过在容器里安装好我们需要的应用然后通过命令手动提交制作镜像让我们了解了制作镜像的详细过程,接下来我们通过Dockerfile来完成镜像的制作,通过Dockerfile我们可以完成更加复杂的镜像制作.

案例2:
通过一个简单的nodejs项目来演示Dockerfile的过程,这里我们使用alpine作为基础镜像,这个镜像可以方便的使用apk进行软件管理,安装nodejs环境
1、首先我新建一个简单的js测试程序

tee index.js <<-'EOF'
var os = require("os");
var hostname = os.hostname();
console.log("hello from " + hostname);
EOF
image.png

2、在index.js同级目录下创建Dockerfile

tee Dockerfile <<-'EOF'
FROM alpine
RUN apk update && apk add nodejs
COPY . /app
WORKDIR /app
CMD ["node","index.js"]
EOF
image.png

3、使用命令构建镜像

docker image build -t hello:v0.1 .
image.png

4、测试容器运行镜像,node环境可以运行js文件,可以看到我们成功运行了上面写的测试程序

docker container run hello:v0.1
image.png

5、下图是镜像构建的过程


image.png

6、Dockerfile层的概念,层的设计理念在构建镜像时可以帮助我们节省时间,Dockerfile的每一行命令代表一个层,每一层之间独立不受其他层影响,例如我们需要改动index.js文件需要重建镜像时,Docker知道其他层没有变动,所以会使用缓存,只对index.js的层进行重新构建,我们一起来看一下这个过程
6-1 增加index.js内容
echo "console.log("this is v0.2");" >> index.js
6-2 重新构建
docker image build -t hello:v0.2 .


image.png
image.png

上面我们使用Dockerfile完成了一个简单的镜像制作

相关文章

  • Dockerfile命令详解

    Dockerfile命令详解 Springboot项目的Dockerfile怎么写

  • Docker资料整理4 -Dockerfile

    docker & kubernetes 面试(某银行科技公司)Dockerfile文件详解使用Dockerfile...

  • Docker 构建镜像

    Docker 构建镜像 环境 Dockerfile 指令详解 FROM or FROM : FRO...

  • dockerfile 详解

    FROM MAINTAINER RUN CMD ENTRYPOINT USER EXPOSE ENV ADD VO...

  • Dockerfile详解

    ADD ADD命令有两个参数,源和目标。它的基本作用是从源系统的文件系统上复制文件到目标容器的文件系统。如果源是一...

  • Dockerfile 详解

    1:Dockerfile是什么? Dockerfile是一个包含用于组合映像的命令的文本文档。可以使用在命令...

  • DockerFile 详解

    DockerFile 详解 Dockerfile由一行行命令语句组成,并且支持用“#”开头作为注释,一般的,Doc...

  • DockerFile 详解

    DockerFile 详解 Dockerfile由一行行命令语句组成,并且支持用“#”开头作为注释,一般的,Doc...

  • Dockerfile详解

    Dockerfile是用来构建Docker镜像的构建文件,是由一系列的命令和参数构成的脚本。 Dokcerfile...

  • Dockerfile详解

    FROM 镜像名定制的镜像都是基于 FROM 的镜像,这里的 nginx 就是定制需要的基础镜像,后续的操作都是基...

网友评论

      本文标题:Dockerfile详解

      本文链接:https://www.haomeiwen.com/subject/wzvvzhtx.html