dockerfile

Docker Dockerfile

无聊的我又来造轮子了

什么是 Dockerfile?

Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说使用

Dockerfile 定制镜像

这里仅讲解如何运行 Dockerfile 文件来定制一个镜像。

镜像的定制实际上就是定制每一层所添加的配置、文件。如果我们可以把每一层修改、安装、构建、操作的命令都写入一个脚本,用这个脚本来构建、定制镜像,那么之前提及的无法重复的问题、镜像构建透明性的问题、体积的问题就都会解决。这个脚本就是 Dockerfile。为啥我感觉有点shell脚本的意思。

Dockerfile 是一个文本文件,其内包含了一条条的 指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。

好家伙这不就是,精心编制的shell脚本嘛

用nginx镜像为例,这次我们使用dockerfile来定制

首先在空白目录中,建立一个文本文件,并命名为dockerfile:

mkdir mynginx

cd mynginx

touch dockerfile

FROM 指定基础镜像

FROM nginx
RUN echo '

Hello, Docker!

' > /usr/share/nginx/html/index.html

run执行命令

shell 格式:RUN <命令>,就像直接在命令行中输入的命令一样。刚才写的 Dockerfile 中的 RUN 指令就是这种格式。

exec 格式:RUN ["可执行文件", "参数1", "参数2"],这更像是函数调用中的格式。

FROM debian:stretch

RUN apt-get update
RUN apt-get install -y gcc libc6-dev make wget
RUN wget -O redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz"
RUN mkdir -p /usr/src/redis
RUN tar -xzf redis.tar.gz -C /usr/src/redis --strip-components=1
RUN make -C /usr/src/redis
RUN make -C /usr/src/redis install

大概流程

参考文章

https://yeasy.gitbook.io/docker_practice/image/build

https://www.runoob.com/docker/docker-dockerfile.html

https://docs.docker.com/engine/reference/builder/#usage

进阶

https://docs.docker.com/develop/develop-images/dockerfile_best-practices/

原文地址:https://www.cnblogs.com/doqingTeenager/p/14855122.html